利用Xcode的Configuration 配置不同的編譯環境 1.配置不同環境下域名 2.配置不同環境下的Bundle Id和Display name 3.配置不同環境下的AppIcon

我們之前項目配置域名都使用這種宏定義的方式,需要什麼環境就註釋掉另外幾個,操作起來比較呆萌,這篇文章說一下如何使用Xcode的Configuration 配置不同的編譯環境。


1.配置不同環境下域名

1.1.定義好自己需要哪些環境(不用代碼寫)

這裏創建4種環境:
1.開發人員環境 (Other)
直接連後臺人員電腦,與服務器聯調使用
2.開發環境(Debug)
完成需求,代碼上傳,在外網開發服務器調試
3.預發佈 (PreRelease)
測試人員使用,copy的正式數據
4.正式環境 (Release)
上傳AppStore使用

1.2.定義預編譯文件(不用代碼寫,但是第1.4步要對應上編號)

BUILD_VERSION = 0 -> 開發人員環境 (Other)
BUILD_VERSION = 1 -> 開發環境 (Debug)
BUILD_VERSION = 2 -> 預發佈環境 (PreRelease)
BUILD_VERSION = 3 -> 正式環境 (Release)

1.3.在pch中定義不同環境的URL

#if  (BUILD_VERSION == 0)
//開發人員環境 (Other)
#define BaseHostUrl @"http://***.*****.**/api/"
#define SERVICEHostURL @"http://***.*****.**"
#elif  (BUILD_VERSION == 1)
//開發環境(Debug)
#define BaseHostUrl @"http://***.*****.**/api/"
#define SERVICEHostURL @"http://***.*****.**"
#elif  (BUILD_VERSION == 2)
//預發佈 (PreRelease)
#define BaseHostUrl @"http://***.*****.**/api/"
#define SERVICEHostURL @"http://***.*****.**"
#elif  (BUILD_VERSION == 3)
//正式環境 (Release)
#define BaseHostUrl @"http://***.*****.**/api/"
#define SERVICEHostURL @"http://***.*****.**"
#endif

1.4.配置configuration


切換環境運行,就會看到域名會隨着切換的環境進行改變成對應的地址。

備註:如果運行報error: unable to parse contents of file list '/xxx/Pods/Target Support Files
/Pods-xxx/Pods-xxx-frameworks-Debug-input-files.xcfilelist'
類似的錯誤,是因爲pods的庫找不到路徑了,你改好上面的配置後,再重新pods一下項目,編譯應該就可以過了。

2.配置不同環境下的Bundle Id和Display name


分別添加APP_BUNDLE_ID 和APP_DISPLAY_NAME兩項,並配置各環境相對應的值



然後點擊TARGET->Info,將Bundle identifier 對應的值改成$$(APP_BUNDLE_ID),Bundle name 對應的值改爲$(APP_DISSPLAY_NAME)


3.配置不同環境下的AppIcon


然後再點PROJECT->Build Setting 找到Asset Catalog App Icon Set Name,將第一步中添加的icon名稱配置到相應環境中。


至此,通過Xcode配置不同環境下的域名、bundle ID、bundle name和appicon就完成了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章