Xcode多種Build Configuration配置使用

本文來自http://www.jianshu.com/p/51a2bbe877aa

測試環境

OS X Yosemite 10.10.5

Xcode 7.0.1

Build Configuration?

Xcode默認會有2個編譯模式,一個是Debug,一個是Release。Release下不能調試程序,編譯時有做編譯優化,會比用Debug打包出來的運行快,另外包也會更小。


pic1.png

使用場景

我自己碰到的使用場景是,我司的域名有3套:

  1. 針對開發時的域名
  2. 針對預上線時的域名
  3. 針對上線時對外公開的域名

這個時候,就會有多套域名,全部加起來可能有15個左右。每次打包時,就會特別混亂。(註釋掉現在使用的域名,打開原本註釋掉的那部分,出差錯的可能蠻高的,而且不利於閱讀)

這個時候,我們就使用它來針對3個環境下不同域名做配置。

配置Build Configuration

1. 添加Configuration

這裏我們添加DEVELOP、BETA、保留原有的(release)。這裏我們選擇直接duplicatte Debug的配置,因爲Release的不能做斷點調試。


pic2.png

2. 查看Configuration

添加完第1步的Configuration之後,在Edit Scheme裏就會看到新添加的配置項


pic3.png

3. 更改Preprocessor Macros

第1步裏我們直接複製了Debug的配置項,那這裏的值就會有問題,需要自己設置。


pic4.png

4. 在程序裏配置對應的Configuration下不同域名


pic5.png

5. 測試

運行程序,修改Scheme下不同的Configuration,就能得到不同的值,那結果就是正確的了。


基於以上的實驗,app還可以在不同環境下配置不同的AppIcon和AppName

AppIcon

使用Asset Catalog,分別給三種環境下配置3個名字

  • AppIcon
  • AppIconDEVELOP
  • AppIconBETA

然後去Target - Build Settings裏搜索Asset Catalog App Icon Set Name這一項


pic6.png

pic7.png

App Name

Target - Build Settings裏點+號,添加一個User-Defined Setting

比如我們請一個叫APP_DISPLAY_NAME的key值,下面BETA叫BETA,DEVELOP叫DEVELOP, Release還是用系統原配置。

進到Target - Info裏,修改Bundle name爲$(APP_DISPLAY_NAME)


pic8.png

pic9.png

pic10.png

運行結果


iconDev.png

iconBeta.png

iconRelease.png

打包配置

這幾天我們做了一件很蠢的事,把開發用的環境打包發給了Apple。
爲了彌補這件事,順便規範以後的打包問題,於是做了一些配置上的補救。
查了下Apple的文檔,原來可以配置,我將Release環境以外的Skip Install配置成NO,就不會Archive出ipa了。


TN2215_SkipInstall.png

參考

http://nickcheng.com/post/unique-icons-for-your-app-in-different-state-in-xcode5-debug-release

https://developer.apple.com/library/ios/technotes/tn2215/_index.html



文/胖劫(簡書作者)
原文鏈接:http://www.jianshu.com/p/51a2bbe877aa
著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。

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