SPM을 사용하는 프로젝트, Github 협업 시 pull을 받으면 흔하게 나타나는 증상인데 해결 방법으로 File - Packages - Reset Package Caches로 해결하곤 한다.
추측으로 Package.resolved
파일이 서로 다른 상태이기 때문에 발생하는데 매번 이 짓을 해야하는게 너무 귀찮다
검색과 gpt로 찾을 수 있는 5가지 정도의 방법으로 해결시도를 해봤으나 결국 이 문제는 xcode 고질적인 문제이고 일관적인 해결법을 찾지 못했다.
# Swift Package Manager
Packages/
Package.pins
Package.resolved
*.xcodeproj
프로젝트 폴더에서 터미널(Terminal) 열기:
프로젝트 폴더에 대고 오른쪽클릭> 새로운터미널열기
만일 위 방법말고 cmd+space로 터미널 연다면 터미널에서 cd 명령어를 사용하여 Swift 프로젝트가 있는 디렉토리로 이동.
cd /path/to/your/swift/project
Git Hooks 디렉토리 확인:
프로젝트 디렉토리 내에 .git/hooks
폴더가 있는지 확인. 이 폴더는 보통 숨겨져 있고 터미널에서 다음 명령어로 확인할 수잇음
ls -la .git/hooks
다음 명령어를 사용해서 .git/hooks
디렉토리 안에 post-merge
파일을 생성한다
touch .git/hooks/post-merge
post-merge 파일 편집
nano .git/hooks/post-merge
열린 편집기에 다음 내용을 입력
#!/bin/sh
xcodebuild -resolvePackageDependencies
nano를 사용했다면, Ctrl+X를 누른 후 Y를 누르고 Enter를 눌러 저장하고 종료
생성한 post-merge
파일에 실행 권한을 부여
chmod +x .git/hooks/post-merge
주의사항: