在OC和swift中区分多个targets
文章目录
【注意】最后更新于 January 11, 2017,文中内容可能已过时,请谨慎使用。
build setting预编译位置
- Preprocessor Macros
- Other Swift Flags
为生产和开发target配置预处理宏/编译器标识。之后我们就可以使用该标识在我们的代码来检测应用程序正在运行的版本。
Objective-C项目中Preprocessor Macros
配置
添加位置:选择项目中对应的target名->在Build Settings
下Apple LLVM 7.0 - Preprocessing
->Preprocessor Macros
。
添加变量:在Rebug和Release区域添加一个变量DEVELOPMENT
对应target1: 设DEVELOPMENT=1
表示开发版
对应target2: 设DEVELOPMENT=0
表示生产版
使用
根据已配置的宏DEV_VERSION,我们可以在代码中利用它动态地编译项目。下面是一个简单的例子:
Objective-C中使用#if
检查DEVELOPMENT
的环境,并相应的设置URLs/ API密钥。
|
|
Swift中Other Swift Flags
对于swift的项目,编译器不再支持预处理指令。作为替代,它使用编译时的属性和build配置。
配置
选中开发target,添加一个标识表示开发版本
选中target
-> Build Setting
->Swift Compiler - Custom Flags
->将值设为-DDEVELOPMENT
表示这个target作为开发版本。
使用
Swift中你仍然可以使用#if
判定build的参数动态编译。然而,除了使用#define
定义基本常量,在swift中我们也可以用let
定义一个全局常量。
|
|
文章作者 iTBoyer
上次更新 2017-01-11