1.需求:目前公司線上有一款A(yù)pp,想要在此基礎(chǔ)上開發(fā)一款新的App,90%的頁面是一樣的,只是個別頁面不一樣
2.解決方式:
(1)直接復(fù)制工程,修改Bundle Identifier,開發(fā)指定頁面,上線應(yīng)用(不建議,因?yàn)楹罄m(xù)如果公共部分有bug,需要在兩個工程都修改代碼)
(2)多target方案,通過宏隔離實(shí)現(xiàn)
3.多target方案
(1)duplicate target
(2)修改target名稱,我的以ZhiFuBao為例
(3)修改plist文件,單擊文件進(jìn)行修改,命名規(guī)則:必須和target名稱相同
(4)找到新的target的Build Settings,搜索packaging,修改.plist名稱為target的名稱
(5)修改target對應(yīng)的scheme名稱,菜單路徑(Product->Scheme->Manage Schemes),注意修改名稱時,需要單擊哮洽,不能雙擊填渠。名稱與target名稱一致即可
(6)不同的target設(shè)置不同的宏,代表當(dāng)前運(yùn)行的是哪個版本. 在不同的target找到Build Settings,搜索preprocessing
我這里是在ZhiFuBao的target定義了kZhifFuBaoApp=1
在SanZhiXie的target定義了kSanZhiXieApp=1
在debug和release均做了定義
(7)代碼實(shí)例:使用條件編譯根據(jù)不同的宏定義進(jìn)行隔離代碼
(8)設(shè)置AppIcon,在Assets中再創(chuàng)建一個新的AppIcon,分別指定不同的名稱
(9)不同的target配置不同的AppIcon,在新的target中的Build Settings搜索asset,輸入正確的AppIcon的名稱
(10)在新的target中設(shè)置一個新的Bundle Identifier
(11)在新的target中設(shè)置一個新的應(yīng)用名稱
(12)在新的target中設(shè)置一個新的啟動圖
(13)切換不同的scheme,運(yùn)行App