Xcode多Target设置
有時候一個項目會分為多個版本,比如免費版、收費版,或者對于不同的客戶定制不同版本。但是大體上功能都是差不多,只是部分頁面稍有區(qū)別。如果每個版本都建一個工程又顯得麻煩了,都放在一個 Target 又得寫一堆的代碼去區(qū)分甄別,而且在打包的時候很可能因為參數(shù)配置錯誤需要一而再、再而三的打包。
這個時候我們就可以用多 Target 來操作了。具體方法且聽我一一道來。
* 首先我們得有一個工程,這里我就新建一個基本的模板工程。
工程的樣子應該是這樣。(我已經(jīng)升級到 Xcode8 了,有什么不同之處請不要在意。)
* 然后我們進入工程設置,右擊中間的 TARGETS ,會有個選擇讓你 Duplicate 還是 Delete ,這里我們選擇 Duplicate。
結果就是下面這個樣子了,多個一個 Target 叫 MultiTarget copy ,還多了一個 plist 文件叫 MultiTarget copy-Info.plist。
* 接下來首先想到的應該是改名字,畢竟 XXX copy 不怎么友好。
目前我所知道的方法只有一個一個的改。
囧。
如果你有好的方法,可以留言給我。
改完 plist 的名字后,需要在工程設置里面重新選擇一下 Info.plist 。改完之后就像下圖一樣。我列了一下我改的幾個地方。但是我記得早期版本的 Xcode 好像還需要修改 Build Settings 里面的一些東西。不過我的 Xcode8 好像不需要了。大家在做的時候注意一下。
PS:忘了修改Bundle Identifier了,大家記得改一下
* 最后一步就是做版本區(qū)分了。
首先我們在 PRO 版本中定義一個宏 PRO_VERSION,寫在 Build Settings 里面。一定記得先選擇 PRO Target。這個作用就是告訴編譯器,我們在編譯該 Target 時會有個全局的宏叫做 PRO_VERSION。這個時候我們就可以利用這個宏來做一些代碼區(qū)分了。
* 最后我們測試一下。
我們在 ViewController 里面增加一個 UILabel ,方便起見,我就直接寫 frame 了,在兩個不同版本顯示不同的文本。代碼如下。
? ? UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 50, CGRectGetWidth([UIScreen mainScreen].bounds), 80)];label.textAlignment = NSTextAlignmentCenter;[self.view addSubview:label];#ifdef PRO_VERSIONlabel.text = @"這是PRO版本"; #elselabel.text = @"這是NORMAL版本"; #endif 復制代碼當然,編譯哪個版本需要選擇對應的 Scheme。下面放兩張截圖。
* 還有個事情就是圖標,其實也可以設置的。
打開 Assets.xcassets,會發(fā)現(xiàn)已經(jīng)有一個 AppIcon 了,我們再copy一份出來,然后改個名字,換一下圖標,就是這樣的效果。
當然并沒有結束,因為我們只是添加了資源,并沒有用到。還是在工程設置里面,有個 App Icons Source ,選擇一下就可以了。當然,我們還可以配置啟動畫面等等,這里就不演示了。
最后放一張兩個 App 的圖標,注意修改 Bundle Identifier,不然你不會運行出兩個 App 的。
原文鏈接
<推廣> 綜合計算器 是一款多功能計算器,可以計算房貸、個稅、年終獎、利息、BMI指數(shù)以及大小金額的計算器,再也不用下載多個計算器找來找去了。還支持實時更新貸款利率哦~。
《新程序員》:云原生和全面數(shù)字化實踐50位技術專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Xcode多Target设置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 条件过滤
- 下一篇: Redis系列五:redis键管理和re