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


101

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

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


.xcuserstate 파일은 pbxproj 파일이 아니라 무시할 수 있습니다.
Kendall Helmstetter Gelner

아니, 여기 당신의 대답은 다음과 같습니다 stackoverflow.com/questions/49478/...
jeswang

답변:


128

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

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

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

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

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

6

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


1
이 대답은 한때 사실 이었을지 모르지만 현재는 틀립니다. "모든 정보"(예 : 사용자 지정 실행 파일이 다른 파일에 저장 됨, 예를 들어 작업 영역이 다른 파일에 저장 됨 등)가 "모든 정보"를 보유하고 있다는 것도 사실이 아니며 사용자가 "유일한 파일"이라는 것도 사실이 아닙니다. 저장하고 싶습니다. -에 .gitignore 포함 할 작업에 대한 질문 CF stackoverflow.com/questions/49478/...
아담

1
잘 생각한 것 같네요 ... 앞으로도 그렇게하세요.
Grady Player

4

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


2
프로젝트의 각 사용자가 프로젝트의 동일한 (공유) 설정과 일치하는 다른 코드 서명 프로필을 갖도록 코드 서명을 설정할 수 있습니다. 예를 들어 와일드 카드 이름을 사용한 다음 각 사용자가 개별적으로 일치 시키거나 예를 들어 모두 동일한 iTunes 팀에 있고 프로필을 공유합니다.
Adam


0

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


0

Xcodegen을 사용하여 YAML 프로젝트 사양 파일에서 pbxproj를 생성 한 다음 git에서 pbxproj를 무시하고 필요할 때마다 생성 할 수 있습니다.

저는 이미 모듈 식 아키텍처 (많은 pbxprojs)가있는 두 번째 프로젝트에서 Xcodegen을 사용했으며 8 명 이상의 개발자가 작업 중입니다.

https://github.com/yonaskolb/XcodeGen

도움이되기를 바랍니다.


0

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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.