实现一个iOS项目中添加多个target,并制作马甲包。
公司項(xiàng)目中全部采用多個(gè)Target在一份項(xiàng)目代碼中生成多個(gè)app端,之前項(xiàng)目中未曾使用過(guò),問(wèn)了幾個(gè)朋友打過(guò)馬甲包的朋友,也都沒(méi)多Target搞過(guò),因此自己試驗(yàn)整理了下target生成的整個(gè)過(guò)程,盡量步驟詳細(xì),大牛勿噴,小白共勉。
1.添加多個(gè)target
如下圖,在項(xiàng)目配置TARGETS中,選中需要復(fù)制的target目標(biāo),右鍵選擇Duplicate,然后就會(huì)出現(xiàn)一個(gè)叫*copy名字的target。
如下圖
選擇Duplicate only,出現(xiàn)如下圖MoreTarget copy
修改MoreTarget copy為我們所需要的名字,我這里改為MoreTarget旗艦。然后接下來(lái)選擇左上角如下圖
點(diǎn)擊Manage Schemes進(jìn)去修改MoreTargets copy為MoreTargets旗艦,注意修改選中MoreTargets copy,點(diǎn)擊一下后,稍等再點(diǎn)擊方可以進(jìn)去編輯修改。
改名如下圖,記得勾選shared,然后close即可。
然后,我們項(xiàng)目中因?yàn)橛玫絚ocopod,為了兩個(gè)target都可以使用pod,我們?cè)陧?xiàng)目左側(cè)podfile中添加字段
target 'MoreTargets旗艦' do
end
command+s保存后,跟終端pod install。
最終結(jié)果我們點(diǎn)擊project--MoreTargets--info,如下圖所示,
等于我們新建的target,MoreTarget旗艦綁定了相應(yīng)的debug和release環(huán)境。請(qǐng)注意我們項(xiàng)目左側(cè)FrameWorks下面出現(xiàn)新的MoreTargets旗艦對(duì)應(yīng)的plist文件MoreTargets copy-Info.plist,我們單擊修改為我們MoreTargets旗艦對(duì)應(yīng)的名字,如下圖
然后我們點(diǎn)擊TARGETS--MoreTargets旗艦--General--Identify下,點(diǎn)擊選擇我們剛才修改的plist文件,如下圖選擇即可。
2.接下來(lái),我們配置兩個(gè)target不同的app name,和不同的bundleIdentifier。如下圖,我們將MoreTargets旗艦的bundelid改為com.targetqijian.www.MoreTargets,
此時(shí)分別選擇運(yùn)行不同的targe,會(huì)在模擬器上安裝為兩個(gè)不同的App。
3.然后我們修改不同target 不同的AppIcon和LanuchImage,分別拖進(jìn)去相應(yīng)圖片,如下圖
我們點(diǎn)擊運(yùn)行后,桌面如下圖兩個(gè)app,一個(gè)是MoreTargets應(yīng)用,一個(gè)是MoreTargets旗艦應(yīng)用,如下圖
最后,后面你添加文件的時(shí)候,根據(jù)自己需要添加到對(duì)應(yīng)的target就可以了。但是在代碼中怎樣區(qū)分兩個(gè)target呢?我們可以添加一個(gè)預(yù)編譯宏來(lái)解決。target->Build Setting,搜索:Preprocessor Macros,設(shè)置Debug和Release里的預(yù)編譯宏內(nèi)容,比如QIJIAN=1表示一個(gè)target版本(注意=前后不能右空格,有空格會(huì)編譯不過(guò)),程序中對(duì)不同版本這樣判斷,如下圖
最后,完畢。兩個(gè)不同的target共用同一份代碼,后續(xù)打包可根據(jù)需要配置不同的開(kāi)發(fā)者賬號(hào)即可。
最近參考上面所述制作馬甲包,完成后會(huì)有編譯失敗的問(wèn)題,原因如下Targets--General--Linked Frameworks and Libraies下,libPods**.a 重復(fù),刪除即可。
總結(jié)
以上是生活随笔為你收集整理的实现一个iOS项目中添加多个target,并制作马甲包。的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: applicationpropertie
- 下一篇: 用c#实现单链表(程序代码已经验证,完全