[TIL] 10.13

Junyoung_Hong·2023년 10월 13일
0

TIL_10월

목록 보기
8/20
post-thumbnail

1. 협업 시 패키지 버전 오류 해결

많은 사람과 협업을 하다보면 패키지의 버전 때문에 오류가 나는 경우가 있다. 초기에 버전을 정하고 진행하면 좋지만, 그렇지 못하는 경우도 많기 때문에 해결하는 방법을 정리해보고자 한다.

1-1. SPM

SPM은 Swift Package Manager의 줄임말로, 패키지 관리 작업을 도와주는 기능이다. 간단한 특징은 다음과 같다.

  1. 패키지(라이브러리) 관리: SPM을 사용하면 소스 코드 파일, 의존성 및 리소스와 같은 패키지 컨텐츠를 정의할 수 있다. 이를 통해 프로젝트에 필요한 라이브러리와 모듈을 손쉽게 추가하고 관리할 수 있다.

  2. 의존성 관리: SPM은 패키지가 다른 패키지에 의존하는 경우 이를 효과적으로 관리한다. 이를 통해 다른 개발자가 작성한 패키지를 쉽게 프로젝트에 추가하고 사용할 수 있다.

  3. 소스 코드 파일 및 리소스 관리: SPM을 사용하여 프로젝트의 소스 코드 파일, 헤더 파일 및 리소스를 구성할 수 있다.

  4. 테스트 지원: SPM은 단위 테스트 및 통합 테스트를 지원하며, 패키지 내에서 테스트 코드를 관리하고 실행할 수 있다.

쉽게 말해서 패키지들을 다운로드하고, 삭제하는 기능이라고 생각하면 편할 것 같다.

패키지를 다운로드하는 방법은 예전에 정리를 했기 때문에 참고하면 좋을 것 같다.

https://velog.io/@wnsdud0721/TIL-09.02

1-1. SPM Action

Xcode에서 파일의 패키지에 들어가면 3가지 항목을 볼 수 있다.

  1. Reset Package Cashed
    • 캐시된 패키지를 지운다. 지운 후, SPM이 자동으로 다시 리졸브한다.
  2. Resolve Package Versions
    • Dependency의 리졸브를 강제하는데 사용한다. 만약 팀원이 Package. resolved 파일을 업데이트하면, 이 action이 Local에 있는 package들의 버전을 맞춰준다.
  3. Update to Latest Package Version
    • Dependency가 업데이트할 수 있는 버전이 나오면, dependency 룰에 따라 업데이트 한다.

리졸브는 패키지 의존성을 해결하고 필요한 라이브러리를 다운로드하고 프로젝트에서 사용할 수 있게 하는 과정을 말한다. 패키지 의존성은 프로젝트에서 사용하는 외부 라이브러리나 모듈을 의미한다.

1-2. Derived Data

Xcode의 설정에서 Locations 항목에 들어가면 Derived Data를 볼 수 있다.

Derived Data는 Xcode 프로젝트를 빌드하고 실행할 때 생성되는 중간 파일 및 빌드 아티팩트가 저장되는 디렉토리를 가리킨다. 이 디렉토리는 프로젝트를 컴파일하고 빌드하는 동안 생성된 캐시, 중간 파일, 컴파일된 바이너리, 그리고 빌드 과정 중에 생성된 다른 임시 파일을 저장하는 장소이다.

1-3. 오류 해결

이제 다른 브랜치에서 pull을 땡겨왔는데, 패키지가 꼬여서 오류가 나는 상황이라고 가정을 하자. 아마 꼬이는 패키지가 fetching이 되다가 멈추면서 resolve 할 수 없다고 하면서 오류가 뜨는 것을 볼 수 있다.

  1. SPM Action 중에서 Reset Package Cashed를 하자.
  2. Derived Data 폴더가 있는 곳으로 가서 폴더를 지운다.
  3. 프로젝트를 다시 열고 빌드를 한다.

이렇게 하면 새로운 패키지의 의존성이 다운로드 되고, 깨진 캐시나 중간 파일 문제가 해결될 가능성이 높다.

profile
iOS 개발자를 향해 성장 중

0개의 댓글