iOS開發: 一個工程多個Target開發

當多個APP項目功能差不多一樣,且大多數代碼、文件、資源可共用時,就可以在一個項目中通過設置不同的target進行開發。

設置步驟:

1、創建Target
2、Assets.xcassets的設置(app圖片、launch啓動頁),務必勾選對應的target
3、配置Info.plist 修改應用名稱、包名、版本號、證書、描述文件等
4、修改Xcode左上角的Target名稱
5、 橋接文件pch設置
6、宏定義(Preprocessor Macros)設置
7、pod管理配置

一、創建Target
  1. 新建項目,命名爲 Teacher:
    新建項目
  2. 文件結構細化,區分系統文件,新建三個新文件夾,用於區分存放三個不同targer 細化結構
  3. 複製target,通過對原有的target做duplicate(duplicate only),複製一份。
    如果兩個target的相同點很多,用duplicate,就可以把相關的設置全部拷貝過來,而不需要做 過多的修改,生成一個新的target。複製target
  4. 複製完可以看到出現了兩個東西: 一個是target,一個是info.plist文件。名字可改爲我們想要的。複製target結果
  5. 同理 重複操作完成另一個target的複製,最終效果見下圖。target創建結果
二、Assets.xcassets的設置(app圖片、launch啓動頁),務必勾選對應的target

給不同target創建各自的Assets.xcassets文件和info.plist文件:

  1. 新建Assets : 新建Assets
  2. 選擇對應的target
    這裏一定要注意 選擇對應的target 選擇對應的target 選擇對應的target 不要選錯了 !!!! 選擇對應的target
  3. 重複操作完成另一個target的Assets配置,最終效果見下圖。 Assest創建結果
  4. 對應的Assest文件中設置不同的圖標和啓動頁:設置啓動頁和圖標
三、配置Info.plist 修改應用名稱、包名、版本號、證書、描述文件等

此時 運行app肯定會報錯,因爲 info.plist文件改了路徑,另外兩個info.plist也還沒有設置。

  1. 選中teacher的target - Build-Settings - 搜索info.plist
    info.plist
  2. 替換新的路徑:info.plist設置新路徑
  3. 運行
    測試是否配置合適 Xcode左上角選中那個target 就是運行對應的項目 另外的info.plist文件對它也不會有影響。
    運行
  4. 同理完成 另外兩個target的 info.plist路徑配置
    一定要注意target是否對應是那個 重點看下圖的 “1” 它就代表着當前選中的targetinfo.plist配置
  5. 修改不同的target的包名、BundleID等在這裏插入圖片描述
四、修改Xcode左上角的Target名稱
  1. 選中Xcode左上角的創建工程時的Target,選擇Manage schemes在這裏插入圖片描述
  2. 編輯在這裏插入圖片描述
五、 橋接文件pch設置
  1. 新建pch文件:在這裏插入圖片描述
  2. pch路徑配置 在這裏插入圖片描述
  3. pch 文件可以做一些不同target文件下的區分
    裏面的AppType 怎麼來的? 幹嘛的? 請看下一步!
六、宏定義(Preprocessor Macros)設置

由於多個target使用同個文件時,存在一定的差異,在代碼中可以實現根據不同宏執行不一樣的代碼,使其與pch文件協作區別target。

具體步驟與前文類似

  1. 選中debug處,單擊該行右邊空白處,會彈窗,在點擊窗口左下角的“+”添加新項。
    在這裏插入圖片描述
  2. release操作一樣,如下圖完成新Target的設置
    這樣 上述pch文件就會起作用。
七、 pod管理配置

因爲存在多個Target,我們需要區別的設置不同target需要的第三方庫,如下圖。這裏可能出現的問題是如果有很多類似SDWebImage這樣的被多個Target需要的類庫,我們在刪除和增加的時候就會頻繁的操作而且會代碼冗餘。
在這裏插入圖片描述

最終效果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章