Xcode專案的多Target管理

砳砳發表於2018-12-18

多Target的應用場景

一般一個專案會有測試版本和生產版本,有的還可能會有預生產版本等,不同的版本對應的一些引數設定也是不同,如果僅是在一個Target上管理,一是麻煩,二是一旦疏忽了,就容易出錯。所以,這種場景下,多Target就可以很好的解決這個問題,不同的Target設定不用的引數,打包的時候,只需要對不同的Target打包就可以了。

如何去設定多Target

1.建立Target,新建專案之後,會有一個預設的Target,選中此Target,右鍵Duplicate,會生成一個xxxx copy的Target,同時,也會生成一個xxxx copy-Info.plist;

Xcode專案的多Target管理
2.修改新Target的名字,選中xxxx copyTarget,再次點選修改名字為xxxx_production;

Xcode專案的多Target管理
3.修改新xxxx copy-Info.plist的名字為xxxx_production_info.plist

Xcode專案的多Target管理
4.此時,新的Target會顯示沒有對應的info檔案,手動選擇剛才修改的info檔案;

Xcode專案的多Target管理
5.修改Xcode左上角的Target的名字,首先點選當前的Target,在彈出的Target列表下方,選擇Manage schemes,然後將xxxx copy修改為xxxx_production;

Xcode專案的多Target管理

Xcode專案的多Target管理
6.至此,多Target新增完成,注意在向Xcode匯入檔案的時候,選擇對應的Target;

Xcode專案的多Target管理
7.新增預處理巨集,來判斷當前的Target;

1. 在專案的Build Settings裡配置Swift Compiler - Custom Flags,展開Other Swift Flags,在Debug右側輸入“-DDEBUG”。也可以“-D DEBUG”,但是不能有賦值,如:“-DDEBUG=1” 或 “-D DEBUG=1”都是無效的。(針對Swift)
複製程式碼

Xcode專案的多Target管理

2. 在專案的Build Settings裡配置Apple LLVM x.x - Preprocessiong,展開Preprocessor Macros,在Debug右側預設包含“DEBUG=1”,若沒有請手動加入。(針對Objective-C、C、C++)
複製程式碼

Xcode專案的多Target管理

提示:在程式碼編輯器中,#if 分支的程式碼,條件成立的會有程式碼著色。
複製程式碼

相關文章