iOS開發(fā)-懶人計(jì)劃-單個(gè)工程多target創(chuàng)建及管理

有的時(shí)候我們工程開發(fā)過程中需要不同的(個(gè)人賬號(hào)/企業(yè)賬號(hào))版本管理、同一份代碼換個(gè)皮膚重新上架到別的賬號(hào)等情況,這個(gè)時(shí)候創(chuàng)建多target管理就非常有用了。

一、創(chuàng)建新的target

直接創(chuàng)建

1.如果直接在這里點(diǎn)擊加號(hào)創(chuàng)建新的target,相當(dāng)于有創(chuàng)建了一個(gè)新的空工程,代碼無法復(fù)用,也就沒什么意義了,所以這種操作直接pass!

11.jpg
22.jpg
333.jpg

copy創(chuàng)建

1.右鍵需要復(fù)用的target,點(diǎn)擊Duplicate,然后Duplicate Only,就是復(fù)制一份出來。

4444.png

2.會(huì)提示是否復(fù)制一份iPad版本的,這個(gè)根據(jù)實(shí)際情況選擇,這里選擇緊急復(fù)制Duplicate Only。

5555.png

3.創(chuàng)建出來的是一個(gè)以copy結(jié)尾命名的target。

7777.jpg

4.隨便點(diǎn)擊一個(gè)文件,看到右邊被兩個(gè)target引用。這就是我們想要的復(fù)用一份代碼的效果。

6666.jpg

到這里一個(gè)復(fù)用代碼的target就創(chuàng)建成功了。但是此時(shí)選擇新的target編譯會(huì)報(bào)錯(cuò),提示找不到相應(yīng)的info.plist文件。因?yàn)槭侵苯訌?fù)制的target,配置信息都是一樣的,但是生成新的info.plist文件名稱和路徑都變了,下面我們進(jìn)行配置。
下面是一些必要的配置

二、配置

修改名稱,這里暫且以DemoRelease命名。有三個(gè)地方需要修改:target,info.plist,Scheme。

8888.jpg

target和info.plist直接選中回車修改


9999.png
aaa.png

Scheme需要選中彈窗 Manager Schemes。


bbb.png

選中回車直接修改。


ccc.png

三處命名以修改完成。
ddd.jpg

其他配置

我們將info.plist放到一起,直接拖動(dòng)。然后再DemoRelease中的Building Setting中修改路徑。

1-aa.jpg

修改到這里,新的target就可以編譯成功了。
然后修改名稱,BundleID,Icon什么的基礎(chǔ)信息就可以打包成一個(gè)新的app了。

增加宏定義區(qū)分代碼(OC)

如果我們需要不同target的代碼功能有所不同,可以設(shè)置宏定義來區(qū)分


1-bbb.jpg
1-ccc.jpg

設(shè)置好以后,代碼中直接使用設(shè)置的宏定義來區(qū)分功能。

    UILabel *label = [UILabel new];
    if (AppTag == 1) {
        label.textColor = [UIColor redColor];
    }else if (AppTag == 2) {
        label.textColor = [UIColor blackColor];
    }else {
        label.textColor = [UIColor yellowColor];
    }
    
    #ifdef isDemo
    label.text = @"這是Demo的target";
    #else
    #endif
    
    #ifdef isDemoRelease
    label.text = @"這是DemoRelease的target";
    #endif

增加宏定義區(qū)分代碼(Swift)

111111111.jpg

格式 : -D XXX 中間有空格。
不管是純OC或者純Swift或者混編項(xiàng)目,OC代碼的定義都在Preprocessor Macros,Swift代碼的定義都在Swift Compiler - Custom Flags

三、刪除

要?jiǎng)h除多余的target,直接刪除生成時(shí)三處位置即可


1-eee.jpg
1-fff.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容