[git] git은 xcodeproject / project.pbxproj 파일을 무시해야합니까?

XCode 프로젝트에서 xcodeproject / project.pbxproj 파일이 변경되었지만 쓸모없는 정보는 컴파일에 사용됩니다.

이 파일과 xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate 파일을 git 무시해야합니까?



답변

Swift Package Manager에 비추어 업데이트 : Swift 패키지 로 프로젝트를 빌드하는 경우이 파일은 진실의 소스로 파일 시스템을 사용하여 생성 될 수 있으므로 무시해야합니다. 다음 명령을 사용하여 수행 할 수 있습니다.

$ cd ~/Projects/MyProjectFolder/
$ swift package generate-xcodeproj

비 SwiftPM 답변-아래를 참조하십시오.

이 파일에는 프로젝트의 모든 파일 목록, 대상 설정 및 어떤 파일이 어떤 대상에 속하는지 포함됩니다. 아마도 프로젝트 번들에서 가장 중요한 파일 일 것입니다. 당신은 이 파일을 무시합니다. 이에 대한 몇 가지 사항이 있습니다.

  1. 이 프로젝트에서 혼자 작업하고 싶지 않을 수도 있습니다.
  2. 다른 기계에서 프로젝트 작업을 계획하고 있습니다.
  3. 다른 사람들과 코드베이스를 공유하고 싶을 것입니다.

답변

이것이 xcodeproj 번들의 저장소에서 원하는 유일한 파일입니다. 이 파일은 대상 파일 및 빌드 설정에 대한 모든 정보를 보유합니다.


답변

안타깝게도 빌드 설정에 코드 서명이 포함되어있는 경우 다른 팀 구성원이 변경 한 경우 “git pull”마다 코드 서명 엔터티를 다시 입력해야합니다. 이 정보는 전역 pbxproj 파일이 아닌 사용자 설정에 있어야합니다.


답변

project.pbxproj를 제외하면 Jenkins 빌드가 실패합니다. 따라서 Jenkins를 사용하는 경우 중요합니다.


답변

xcworkspace 파일도 보존해야한다는 것을 알았습니다. 그렇지 않은 경우 하위 프로젝트가있는 프로젝트가 중단되었습니다.


답변

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