寫在前面
新年回來,終于迎來了新項目,由于我們開發的APP主要用于自己家公司員工使用的,是以呢,需求要求新開發的APP需要根據員工的職能的不同使用對應的APP,兩個APP界面相同,隻是為了區分不能職能,具體就不細說了,當時想,這需要做兩個APP嘛?就算copy的話也挺麻煩的啊,不偷懶的程式猿不是好程式猿,哈哈哈,這時我同僚一句話提醒了我:
target
。
利用Xcode的target建立兩個APP
既然是兩個APP的界面是一樣的,那麼就簡單很多了,簡單的來說就是建立一個新的項目之後,通過對原有的target做duplicate,複制一份,那接下來就記錄一下通過duplicate建立target的方法。
- 假設原來的
名字為target
,我們需要建立一個targetTestDemo
。targetTestDemo2
1.png
- 在原來的target上右鍵,選擇
,duplicate
會複制一個名為Xcode
的targetTestDemo copy
對象,(如上圖),同時會生成一個target
和targetTestDemo copy-info.plist
的targetTestDemo copy
。選擇複制之後如下圖:scheme
2.png
- 箭頭所指的plist檔案是與新生成的target對應的檔案,需要更改兩個target對應的
,選中這個bundle name
。更改圖示就在Target-info-plist name
中上傳兩套圖示,選中Images.xcassets
進行選擇。這樣兩個APP的名字和Target-Gernal-App Icons and Launch Images
就都不一樣了。icon
- 那麼怎麼在編寫程式的時候區分這連個APP呢?那就是編寫預編譯宏,用來區分兩個
。選中Target
分别給倆個Target添加兩個預定義宏First=1、Second=1: 3.pngTarget-Bulid Settings-Preprocessor Macros
- 在
中加入條件判斷語句:AppDelegate.m
#if defined (MACRO)
//target B需要執行的代碼
#else
//target A需要執行的代碼
#endif
在使用的時候根據宏定義的條件選擇來選擇對應APP需要處理的具體業務邏輯内容。通過如上設定就可以用一份代碼生成兩個不同的APP了。