Xcode 工程檔案“.xcodeproj”檔案夾解析,xcode.xcodeproj
項目.xcodeproj 檔案夾底下一般有4個檔案:
下面主要講解涉及到 .xcschemes 相關檔案,其他設定(例如斷點一類的)暫不講解
1.project.pbxproj 檔案。
Xcode專案檔是一個老式的plist(下一個風格)根據括弧分隔的階層。
refer:http://www.monobjc.net/xcode-project-file-format.html
解析此檔案可以使用命令列工具“plutil”,例如
plutil -convert json -s -r -o converted.json /Users/shaowei/Project/iphone-com-pub/baseframe/IphoneCom/IphoneCom.xcodeproj/project.pbxproj
plutil -convert xml1 -s -r -o converted.xml /Users/shaowei/Project/iphone-com-pub/baseframe/IphoneCom/IphoneCom.xcodeproj/project.pbxproj
上面的命令是把指定project.pbxproj檔案 轉換到命令的目前的目錄下converted.son,詳情請”man plural”來查詢使用方法
注意:盡量帶上“-o 結果檔案”,否則的話此命令會修改project.pbxproj檔案本身,想相信這不是你想要的。
還有converted.xml 的副檔名改為“converted.plist”,這樣就能使用Xcode的來查看該檔案,介面更友好,你懂得。
refer from: http://stackoverflow.com/questions/1452707/library-to-read-write-pbxproj-xcodeproj-files
其他解析方式如下(暫未驗證有訊息,只是網上找的):
http://stackoverflow.com/questions/7557273/tutorial-or-guide-for-scripting-xcode-build-phases
https://pypi.python.org/pypi/xUnique
2.xcuserdata 檔案夾
此檔案夾是項目建立時跟隨建立的,
裡面路徑:mac使用者名稱.xcuserdatad -> xcschemes -> (***.xcscheme + xcschememanagement.plist)
點擊 Xcode的“manage schemes”,出現,
如果選中 “shared”,則會把該目錄下的“mac使用者名稱.xcuserdatad -> xcschemes -> ***.xcscheme”檔案移動到“xcshareddata->xcschemes”檔案夾下;
刪除此檔案夾的話,“ xcschememanagement.plist”會在啟動該項目時重建的,但是“***.xcscheme”檔案是不會重建的,你就會丟失xcscheme檔案。
此目錄下會有多個檔案夾,這根據不同的使用者來命名的,當使用版本管理器時,而且沒有忽略該檔案夾,你就會發現此目錄下就可能會有多個人的目錄。
一般來說,此目錄不太建議放到svn裡面,因為這個目錄放的是一些個人設定,還有斷點設定一類的,即使你放到svn裡面,別人也不會載入,因為Xcode只會載入對應使用者名稱的檔案夾。
需要和別人共用的xcschemes,應該放到下面的“xcshareddata”檔案夾,然後使用svn來同步“xcshareddata”檔案夾
3.xcshareddata 檔案夾
項目一開始時,是沒有“xcshareddata”檔案夾的。
當的 “shared”複選框被選中,則會把 “xcuserdata”裡相應的xcscheme檔案移動到本目錄的xcschemes檔案夾下,這時才會建立此檔案夾。
多人開發時,為了支援共用xcscheme,一般會勾選“shared”,這樣,相應的“***.xcscheme”就會被移動到該目錄下。
所以在多人開發時,應該把此目錄放到svn裡去同步,同時注意,被共用的“***.xcscheme”也會影響到隊友,要謹慎修改。
注意:刪除此目錄後,重新開啟項目也不會重建的,刪之要謹慎~
如果刪除此目錄,而“xcuserdata”檔案夾下也沒有xcscheme檔案,那麼你開啟項目,就會出現如情況,就是無法編譯了;
如果出現了下面的情況,那麼你把”xcuserdata”檔案夾給刪除掉,重啟項目,Xcode會重新建立xcuserdata檔案夾和預設的xcscheme檔案。