Xcode裡一個工程(Project)多個專案(target)做版本控制討論
最近專案即將釋出測試,考慮到更換髮布證書,以及釋出環境(PRD)和之前的開發環境(DEV),測試環境(STG)的某些配置不同,比如bundle ID,對應的聽雲的Apikey,高德地圖的Apikey,訊息推送的推送伺服器地址不同等。
我們用了兩種方法進行處理,
1.通過在.h裡巨集定義或者在對應檔案裡,判斷kServer是否是PRD,STG等來修改對應的key,例如
#define kIOBS_Dev @"http://iobs-test.xxx.com.cn/" #define kIOBS_Sfy @"http://test1-iobs.xxx.com.cn/" #define kIOBS_Pro @"https://iobs.xxx.com.cn/" #define baseURL [KServer isEqualToString:kEnvironment_Prd]?kIOBS_Pro:([KServer isEqualToString:kEnvironment_Stg]?kIOBS_Sfy:kIOBS_Dev)
2.通過新建target控制,釋出時換成prd對應的target編譯執行即可。
Apple官方這樣說:“ Targets that define the products to build. A target organizes the files and instructions needed to build a product into a sequence
of build actions that can be taken.”
大意是target決定著程式碼的編譯設定(比如編譯條件), 以及包含的資源庫檔案等。
關於project和target的區別,我就不多贅述,詳情參考
關於如何新增target,大致步驟如下:
1 選擇 target 裡面需要複製的目標,選擇Duplicate,Duplicate Only, 就會生成同時生成一個*** copy-info.plist和 *** copy的scheme
2 修改Xcode左上角的target名稱
點選xcode左上角Run、Stop右邊的工程名稱,下拉框中選擇Manage Schemes,在彈出框中,點選A copy可以修改*** copy
3 修改 ***
copy-info.plist 為你需要的名稱,修改為你專案的plist的名稱
4 修改xcode左下方Products下的***
copy.app名稱:
選擇新建的target,點選Bulid Setting,搜尋Packaging下的Private Headers Folder Path,修改*** copy.app/PrivateHeaders為:***.app/PrivateHeaders,這樣就不會出現一個
5 其他的證書部分,就要按照需求進行了,不做修改就跟複製的保持一致。
6 增加一個新的點 ,因為每個專案都與自己的 AppIcon和LaunchImage,可以在專案裡面直接修改路徑的。在Buildsetting裡面設定的路徑的名稱一定要跟新建的兩個資料夾名稱保持一致
參考