如何區分使用Swift的兩個Xcode目標?這個想法是在Xcode中使用相同的代碼庫製作免費和付費版本的應用程序。使用Swift區分兩個Xcode目標
使用目標C我可以使用預處理器宏,但使用Swift則不可用。
如何區分使用Swift的兩個Xcode目標?這個想法是在Xcode中使用相同的代碼庫製作免費和付費版本的應用程序。使用Swift區分兩個Xcode目標
使用目標C我可以使用預處理器宏,但使用Swift則不可用。
由於Xcode中8,你可以在活動編輯條件設置爲每個目標生成設置編譯條件。
有了這些設置,您可以使用:
#if FREE
//do something
#endif
欲瞭解更多詳情,請參閱該i40west answer和評論。
在Xcode中,進入目標的構建配置。查找名爲的部分Swift編譯器 - 自定義標誌,其中包含一個名爲的其他Swift Flags的設置。
爲編譯器添加一個命令行標誌來添加一個標誌,就像你用C編譯器做的一樣。
現在你已經得到-D Something
傳遞給斯威夫特編譯器。在您的銀行代碼,你現在可以這樣做:
#if Something
let foo = "bar"
#endif
它看起來很像C預處理器,但不像C,在所有的條件部分中的所有代碼必須是語法正確或程序將無法編譯。因此,您可以在構建設置中的每個目標上設置一個標誌,並在代碼中使用它們。
更重要的是,#if,active或no中的所有代碼也必須是* complete *語法單元。所以你不能說''if /#else /#endif'只是'func'聲明,而把函數體留在'#if'之外。 – rickster 2014-12-04 02:17:26
這是故事板的工作,我想改變基於故事板中的目標的形象 – 2016-07-25 11:49:27
我不明白。它不應該是'如果Something == QA',否則如果Something == Stage' ...你寫它的方式,似乎該標誌的**存在**是所有必要的。如果兩個版本具有相同的標誌,會發生什麼?! – Honey 2018-02-06 21:03:01