XCode專案多Target開發指南

醬油蔥發表於2018-02-23

宣告: 轉載註明本人出處, 請在方便的情況下儘量告知.

尊重原創, 共同進步.


立意

不少公司開發的專案有面對多客戶/市場的需求, 然而基本功能完全一致的情況下, 可以考慮多Target開發, 減少開發和維護的人力成本.

考慮到目前業界的實際情況, 本文主要以Objective C為主要開發語言, Swift為後續加入的開發語言來做示例. 其它情況請自行參考.

流程

1. 建立

建立第一個專案FirstProduct, 如圖:

001

002

003

2. 新增Swift配置

新增Swift檔案, OC呼叫和基本的配置內容, 如圖:

004

005

006

007

008

009

010

011

012

013

014

初次執行結果如下:

015

3. 建立第二個Target

基本的思路就是"搬磚"(複製-貼上ORZ).

複製Target, 複製Schemes, 修改新專案的Bundle Indentifier:

016

017

018

019

020

021

複製圖片資源庫, 修改其內容及Target指向. 原資源庫僅指向First Target:

022

023

024

025

複製啟動頁, 修改其內容及Target指向. 原啟動頁僅指向First Target:

026

027

028

好了, 可以嘗試執行了.

結果肯定是失敗. XD

因為我們還沒有修改完.

4. 修改第二個Target的專案配置

029

030

031

032

目前Demo只做簡單的專案名稱替換, 更復雜的可以考慮使用User Defined Settings配置項及Configurations來做.

這樣就可以適配不同的語言, 甚至完成不同的打包需求了. 因其不在本文範圍內, 不做進一步擴充套件.

More...

你以為這就可以佛祖保佑, 永無Bug, 完美執行了?

只能說Too Young, too simple.

別忘了我們的專案是OC和Swift混編的, 而Swift是用Module進行模組系統劃分的. 至於專業解說, 請參考貓·仁波切這篇文章

所以FirstProduct的Module, 在SecondProduct裡不一定能用, 我們需要稍微改造一下.

  • 這個是FirstProduct原來的Swift.h引用

033

  • 這個是SecondProduct修改的Swift.h引用

034

當然你也可以考慮不同的Target生成使用不同的Module檔案, 然後根據系統配置巨集來做更為複雜的配置功能.

不過本文就是個小Demo, 就不做這種高難度動作了.

終於可以執行了, 謝天謝地. 順便祝大家2018年開工大吉, 狗富貴, 勿相忘. 旺旺旺!

相關文章