[Xcode] SPM xcsharedata > swiftpm .gitignore 제외 여부

 

 CocodPods Podfile.lock 

 

CocoaPods 를 사용하면 Podfile.lock이라는 파일을 확인할 수 있습니다. 이는 일반적으로 .gitignore에 포함되지 않습니다. 그 이유는 여러 사용자(개발자)가 동일한 소스 서드파티 라이브러리를 공유하고 사용하기 위해서 입니다. repo를 업데이트 하거나 deintegrate 명령을 통해 파일을 변경할 수 있지만 해당 lock 파일이 고정 됨으로써 모두 동일한 소스를 사용한다고 보장할 수 있습니다. 

 

Xcode Commit


 

 

 

 Package.resolved 

이와 비슷하게 Xcode의 Swift Package Manager(이하 SPM)를 사용하면 다음과 같이 git에 commit 할 때 포함 여부를 묻습니다. 대체적으로 userdata 같은 경우는 Xcode에 포함하지 않는 경우가 많은데 사용자 정보가 커밋 되어져서 여러 사용자가 혼란에 처할 수 있습니다. 하지만 이 파일의 경우 gitignore에 추가하면 안됩니다. 다음 경로에 위에서 말한 Podfile.lock과 비슷한 역할을 하는 Package.resolved 라는 파일이 있습니다. SPM를 추가하면 프로젝트는 자동으로 워크스페이스를 만들고 그 안에 포함되게 됩니다.

 

project.xcworkspace > xcshareddata > swiftpm > Package.resolved

 

{
"pins" : [
{
"identity" : "alamofire",
"kind" : "remoteSourceControl",
"location" : "https://github.com/Alamofire/Alamofire.git",
"state" : {
"revision" : "78424be314842833c04bc3bef5b72e85fff99204",
"version" : "5.6.4"
}
},
{
"identity" : "baggy",
"kind" : "remoteSourceControl",
"location" : "https://github.com/prod-duolabs/Baggy.git",
"state" : {
"branch" : "main",
"revision" : "740f680a34ed38256a08f50d66b5ee93003e6848"
}
}
],
"version" : 2
}

이 파일은 프로젝트 workspace에 정의되어 있는 파일로 패키지 정보를 기술하는 파일입니다. 협업시 같은 패키지 버전을 사용하기 위해서는 꼭 필요합니다.

 

 

gitignore.io

만약 Xcode에서 어떤 파일을 ignore 해야할 지 모른다면 다음 웹사이트에서 Xcode를 추가하고 gitignore 파일을 자동 생성할 수 있습니다. 그밖에 다른 IDE에 대한 ignore도 지원하니 잘 활용하면 좋을 것 같습니다.

 

https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

 

 

 

Designed by JB FACTORY