如何用Swift区分两个Xcode目标?我们的想法是在Xcode中使用相同的代码库制作免费和付费版本的应用程序.
目标CI可以使用预处理器宏,但使用Swift则不可用.
小智 32
在Xcode中,进入目标的构建配置.找到名为Swift Compiler - Custom Flags的部分,其中包含一个名为Other Swift Flags的设置.
为编译器添加一个命令行标志来添加一个标志,就像你使用C编译器一样.
现在你已经-D Something
被传递给了Swift编译器.在Swift代码中,您现在可以执行以下操作:
#if Something
let foo = "bar"
#endif
Run Code Online (Sandbox Code Playgroud)
它看起来很像C预处理器,但与C不同,所有条件部分中的所有代码都必须在语法上正确,否则程序将无法编译.因此,您可以在构建设置中的每个目标上设置一个标志,并在代码中使用它们.
从Xcode 8开始,您可以在Active Compilation Conditions下的每个目标的Build Settings中设置编译条件.
有了这些设置,您可以使用:
#if FREE
//do something
#endif
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅i40west的答案和评论.
归档时间: |
|
查看次数: |
7289 次 |
最近记录: |