實現一個iOS項目中添加多個target,並制作馬甲包。


公司項目中全部采用多個Target在一份項目代碼中生成多個app端,之前項目中未曾使用過,問了幾個朋友打過馬甲包的朋友,也都沒多Target搞過,因此自己試驗整理了下target生成的整個過程,盡量步驟詳細,大牛勿噴,小白共勉。

1.添加多個target

如下圖,在項目配置TARGETS中,選中需要復制的target目標,右鍵選擇Duplicate,然后就會出現一個叫* copy名字的target。

如下圖

選擇Duplicate only,出現如下圖MoreTarget copy

修改MoreTarget copy為我們所需要的名字,我這里改為MoreTarget旗艦。然后接下來選擇左上角如下圖

點擊Manage Schemes進去修改MoreTargets copy為MoreTargets旗艦,注意修改選中MoreTargets copy,點擊一下后,稍等再點擊方可以進去編輯修改。

改名如下圖,記得勾選shared,然后close即可。

然后,我們項目中因為用到cocopod,為了兩個target都可以使用pod,我們在項目左側podfile中添加字段

target 'MoreTargets旗艦' do

end

 

command+s保存后,跟終端pod install。

最終結果我們點擊project--MoreTargets--info,如下圖所示,

等於我們新建的target,MoreTarget旗艦綁定了相應的debug和release環境。請注意我們項目左側FrameWorks下面出現新的MoreTargets旗艦對應的plist文件MoreTargets copy-Info.plist,我們單擊修改為我們MoreTargets旗艦對應的名字,如下圖

然后我們點擊TARGETS--MoreTargets旗艦--General--Identify下,點擊選擇我們剛才修改的plist文件,如下圖選擇即可。

2.接下來,我們配置兩個target不同的app name,和不同的bundleIdentifier。如下圖,我們將MoreTargets旗艦的bundelid改為com.targetqijian.www.MoreTargets,

此時分別選擇運行不同的targe,會在模擬器上安裝為兩個不同的App。

3.然后我們修改不同target 不同的AppIcon和LanuchImage,分別拖進去相應圖片,如下圖

我們點擊運行后,桌面如下圖兩個app,一個是MoreTargets應用,一個是MoreTargets旗艦應用,如下圖

最后,后面你添加文件的時候,根據自己需要添加到對應的target就可以了。但是在代碼中怎樣區分兩個target呢?我們可以添加一個預編譯宏來解決。target->Build Setting,搜索:Preprocessor Macros,設置Debug和Release里的預編譯宏內容,比如QIJIAN=1表示一個target版本(注意=前后不能右空格,有空格會編譯不過),程序中對不同版本這樣判斷,如下圖

最后,完畢。兩個不同的target共用同一份代碼,后續打包可根據需要配置不同的開發者賬號即可。

最近參考上面所述制作馬甲包,完成后會有編譯失敗的問題,原因如下Targets--General--Linked Frameworks and Libraies下,libPods**.a 重復,刪除即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM