2012-06-08 24 views
54

我正在使用shell腳本來執行命令行xcodebuild。我的問題是,如果我打開並關閉xx.xcodeproj文件一次,然後使用該命令它效果很好。project.xcworkspace文件是否重要?

不知何故,如果我深入瞭解文件更改,這是唯一已更改的文件。這個文件是否有效,是否應該將其檢入版本控制? 這會造成任何問題嗎?

我聽說它和.pbxproj一樣重要:這是真的嗎?

我找不到任何有關在Xcode項目文件中討論各種文件的角色和職責的有效文檔。請提供有助於我理解的鏈接。

回答

89

project.xcworkspace是描述工作空間或項目的文件目錄。儘管這裏的一些答案表明它沒有必要,應該忽略源代碼控制,但我不同意,但這將很大程度上取決於您如何使用您的環境。通常,project.xcworkspace目錄的內容包含contents.xcworkspacedata文件,該文件列出項目中作爲頂級實體包含的項目,包含每個用戶設置的xcuserdata目錄(應忽略源代碼控制)以及xcshareddata ,這是共享項目的用戶共享的數據,應該受源代碼管理。

在您不共享工作區或使用簡單工作區的環境中,您也可以忽略這些,但是在將相關項目放在同一工作區並共享該配置的環境中,您可能需要保持這些。

+6

如果您使用Cocoa Pod(pod install),則會創建project.xcworkspace文件。它創建一個pods工作區,如果你想要通過Pods安裝的東西,你需要打開project.xcworkspace文件而不是項目文件。 – LevinsonTechnologies

+6

@LevinsonTechnologies OP指的是項目的Foobar.xcodeproj頂層文件夾中的子文件夾。該子文件夾是_literally命名爲'project.xcworkspace'。 CocoaPods創建的並且您指的是另一個名爲'Foobar.xcworkspace'的_top-level_文件夾,它與Foobar.xcodeproj存在於同一層。不要混淆這兩件事!我的猜測是,Xcode總是需要一個工作區,而且子文件夾是某種「隱藏的」工作區,只要您只使用.xcodeproj,Xcode就會爲您創建並維護這些工作區。 – herzbube