XCode 프로젝트에서 xcodeproject / project.pbxproj 파일이 변경되었지만 쓸모없는 정보는 컴파일에 사용됩니다.
이 파일과 xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate 파일을 git 무시해야합니까?
XCode 프로젝트에서 xcodeproject / project.pbxproj 파일이 변경되었지만 쓸모없는 정보는 컴파일에 사용됩니다.
이 파일과 xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate 파일을 git 무시해야합니까?
답변:
Swift Package Manager에 비추어 업데이트 : Swift 패키지 로 프로젝트를 빌드하는 경우이 파일은 진실의 소스로 파일 시스템을 사용하여 생성 될 수 있으므로 무시해야합니다. 다음 명령을 사용하여 수행 할 수 있습니다.
$ cd ~/Projects/MyProjectFolder/
$ swift package generate-xcodeproj
비 SwiftPM 답변-아래를 참조하십시오.
이 파일에는 프로젝트의 모든 파일 목록, 대상 설정 및 어떤 파일이 어떤 대상에 속하는지 포함됩니다. 아마도 프로젝트 번들에서 가장 중요한 파일 일 것입니다. 당신은 안 이 파일을 무시합니다. 이에 대한 몇 가지 사항이 있습니다.
이것이 xcodeproj 번들의 저장소에서 원하는 유일한 파일입니다. 이 파일은 대상 파일 및 빌드 설정에 대한 모든 정보를 보유합니다.
안타깝게도 빌드 설정에 코드 서명이 포함되어있는 경우 다른 팀 구성원이 변경 한 경우 "git pull"마다 코드 서명 엔터티를 다시 입력해야합니다. 이 정보는 전역 pbxproj 파일이 아닌 사용자 설정에 있어야합니다.
project.pbxproj를 제외하면 Jenkins 빌드가 실패합니다. 따라서 Jenkins를 사용하는 경우 중요합니다.
Xcodegen을 사용하여 YAML 프로젝트 사양 파일에서 pbxproj를 생성 한 다음 git에서 pbxproj를 무시하고 필요할 때마다 생성 할 수 있습니다.
저는 이미 모듈 식 아키텍처 (많은 pbxprojs)가있는 두 번째 프로젝트에서 Xcodegen을 사용했으며 8 명 이상의 개발자가 작업 중입니다.
https://github.com/yonaskolb/XcodeGen
도움이되기를 바랍니다.
project.pbxproj는 Xcode 구성 번들의 중요한 파일입니다. 링크 된 모든 파일 및 해당 그룹, 링크 된 프레임 워크, 그리고 가장 중요한 프로젝트의 빌드 설정에 대한 참조를 유지 관리합니다. 이 때문에 버전 제어에서 project.pbxproj를 제외 할 수 없습니다.
.gitignore
내 Xcode 프로젝트의 장군 입니다.
# OS X Finder
.DS_Store
# Xcode per-user config
*.mode1
*.mode1v3
*.mode2v3
*.perspective
*.perspectivev3
*.pbxuser
*.xcworkspace
xcuserdata
# Build products
build/
*.o
*.LinkFileList
*.hmap
# Automatic backup files
*~.nib/
*.swp
*~
*.dat
*.dep