若是你有多人協同開發 Mac/iOS 專案,並且有使用版本控制系統的話,一定會在合併 Xcode 專案檔時吃到不少苦頭,一個不小心就會誤刪某些檔案的參照,或是重複某些檔案的參照。
最近發現一個好用的 script,可以用它來幫忙「根據檔名排序」專案檔裡頭的檔案。原本你的專案可能是混雜了檔案與群組資料夾,但經過這個 script 排序之後,專案會變成所有的群組資料夾排在最前面,接著才是檔案,而且群組資料夾裡頭的內容也會被排序。
因為被排序過,所以在合併不同版本的時候,就可以容易看出哪些項目是新增或刪除,若是不小心重複參照了某些檔案,也比較容易找出來。
這個 script 名叫 sort-Xcode-project-file,假設你把它跟 MyApp.xcodeproj
檔放在同一目錄,那你可以手動執行以下指令來排序(MyApp 請自行代換成你的 app 名稱)
perl sort-Xcode-project-file MyApp.xcodeproj/project.pbxproj
或是修改 Scheme 把它加到 Build → Post-actions
,每次編譯專案之後就自動排序一次,免去手動下指令的麻煩。如果要這樣做的話,script 呼叫方式要改成以下(註:我把這個檔案放在專案根目錄下的 script 子目錄):
perl "${PROJECT_DIR}/script/sort-Xcode-project-file" "${PROJECT_FILE_PATH}/project.pbxproj"
(用雙引號把路徑包起來,路徑中有空白才不會出問題)
** 記得「Provide build settings from」要選擇你的 Target! **
使用小提示:
- 最好從一開始就使用它,可以免去後續許多合併的麻煩
- 要好好規劃群組資料夾,檔案盡量放到群組資料夾裡頭