多個應(yīng)用使用界面效果幾乎一致尚粘,僅僅改變主題色和主題logo的情況下郎嫁,為了節(jié)省資源祈噪,便于代碼維護(hù),選擇用一個工程建立多個target的方式實(shí)現(xiàn)此需求盔腔。
1. 新建一個Target(在原來的target上右鍵弛随,選擇duplicate宁赤,Xcode會復(fù)制一個名為 copy的target對象,同時生成一個 copy-info.plist和Acopy的scheme)
注意 :
創(chuàng)建不同的target時愕够,有個細(xì)節(jié)需要注意,那就是你的項(xiàng)目如果是xcworkspace時厉斟,先pod install后再去按照貼圖上面的操作去完成强衡,否則,先創(chuàng)建再pod install感挥,projectName-dev和projectName-test就會出現(xiàn)報錯越败,報錯原因是pod的配置信息沒完成或文件路徑?jīng)]索引到。
操作如圖:
添加完之后有三點(diǎn)出現(xiàn)新的target
2 修改應(yīng)用的名字,target的名字亿傅,在info.plist中修改 以及bundleID的修改
- 對 copy target改名,可以直接單擊target來修改葵擎,改成SecondTarget
- MoreTarget copy-info.plist,默認(rèn)生成在程序環(huán)境根目錄签餐,如果想放到里層氯檐,可以先在Xcode刪除 MoreTarget copy-info.plist索引,然后拷貝文件到制定目錄中男摧,然后更名為SecondTarget-info.plist译打,然后add到project中奏司。Prefix Header的路徑,視具體需求而定是否要修改韵洋,如果兩個target可以公用同一個Prefix Header,那么就不需要修改這里的路徑
生成一個新的target食拜,可以定義預(yù)編譯宏副编,預(yù)定義宏(Build Setting–>Preprocessor Macros)這個宏是一個全局宏,在所有/整個工程的代碼中都是有效的呻待,我們可以在這里添加上環(huán)境與處理的宏(例如:MORETARGET队腐,這個是隨便自己取的)
兩個target情況下的配置如下:
然后在定義宏的文件中加入如下代碼
/**
MORETARGET
0:項(xiàng)目1
1:項(xiàng)目2
*/
#ifdef MORETARGET
#if MORETARGET == 0
#defineWDAPIServerUrl @""
#defineJSPatchAppKey @""
#elif MORETARGET == 1
#defineWDAPIServerUrl @""
#defineJSPatchAppKey @""
#else
#warning"未匹配環(huán)境"
#endif
其他:Build Phases(各target編譯所包含的內(nèi)容柴淘,需要注意的是,如果創(chuàng)建了Second target 后敛熬,再往原target里面添加資源或文件梗脾,Second target 中不會自動增加這些資源,需要手動添加)
1.Compile Sources
需要編譯的代碼文件
2.Link Binary With Libraries
編譯所依賴的庫
3.Copy Bundle Resources
編譯需要的資源
每個target可以根據(jù)具體需要增減里面的內(nèi)容