Xcode單專案多版本(Target)

Henry Huang
4 min readSep 30, 2019

--

之前因為APP專案需要多版本,但是每個版本其實是大同小異的,所以就查詢了一下怎麼達到此功能,我記得我查到的大致上有3種方式,我就選擇了我覺得最簡單也最符合的方式,使用Target來區分

第一步-複製Target

Target是可以自行加入的,但因為專案其實大部分是共用的,所以使用複製會比較方便。

在原先的Target上點選右鍵,選擇Duplicate

第二步-修改Target名字

Target複製出來後會在原先的Target後加入copy字,所以要改成我們要的名字會比較好辨識,直接雙擊就能改名

第三步-修改Info.plist

剛剛複製出Target後,Xcode會自行幫我們建立一個Info.plist,但位置和名字可能需要修改一下

把它移到想要的地方並且修改成想要名字,我就直接先移到原先專案資料夾就好了

第四步-修改Schemes名字

點擊左上暫停鈕右邊的選擇Schemes,會看到他也是原先專案名字後面加上copy,我們就是要改掉他,這樣以後比較好辨識目前要運行的是哪個專案,選擇最下面的Manage Schemes…

然後直接修改Scheme名字後關掉就可以了

第五步-選擇info.plist

選到新的TestTarget Second ,然後選擇choose info.plist File…

然後選擇他要的info.plist ,在這裡是TestTargetSecond.plist

第六步-修改Bundle identifier,記得要修改Bundle Id

第七步(END)-建立識別字

先選擇原先專案Target並切換到Build Settings,然後再searcher bar上輸入other swift,會找到Other Swift Flags,然後再TestTarget下面的空格雙擊,然後增加識別字,注意識別字前面必須加入-D,所以我輸入-DFIRST

切換到TestTarget Second也是一樣的地方,我輸入-DSECOND

使用部分:

在程式碼要怎麼做出識別呢?

以下就來簡單示範,直接到ㄧ個viewController,然後使用#if(elseif) #endif來作識別

在左上方切換Scheme,就可以看到印出對應版本的字串

TestTarget
TestTarget Second

設置個別APP Icon:

到Assets.xcassets,新增一個New iOS App Icon,然後將對應的圖片放好

再到Target下修改App icons and Launch Images內的App Icon Source就可以了!

--

--

Henry Huang
Henry Huang

Written by Henry Huang

大學讀企管/退伍後在業務圈打滾6年後突然有一天決定投入完全沒接觸過的程式設計/目前為一位iOS Developer/熱愛NBA/dafu1231@gmail.com

No responses yet