项目开发中会存在测试、正式等不同环境,需对应不同接口Host地址、项目名称等等配置。如果每次只有一个项目target的话每次打包的时候替换会很麻烦,而且容易出错。所以我们可以通过创建多个不同配置的target以区分不同环境。
1.复制原有target
复制原有target
选择仅复制
复制完成后出现一个copy的target
方便区分可将target进行改名(直接在target上回车即可编辑)
2.修改plist文件名
在复制target操作后不仅复制出了一个target,还会复制出一个对应的Info.plist文件
将复制出来的plist文件改名,好对应区分
3.为刚刚复制出来的target选择对应的plist文件
选择刚刚改名的plist文件
4.修改Scheme名,方便区分
选择Manage Schemes
回车编辑
完成
5.预定义宏已区分测试target(Build Setting–>Preprocessor Macros)
这个宏是一个全局宏,在所有/整个工程的代码中都是有效的,我们可以在这里添加上环境与处理的宏(例如:JW_TESTMARK,这个是随便自己取的)
6.根据预定义的宏以区分环境,进行配置
#if defined (JW_TESTMARK)
//测试环境
#define AppMainUrl @"http://192.168.1.111:8080/"
#else
//正式环境
#define AppMainUrl @"http://api.baidu.com/"
#endif
打完收工
需要注意的
你的项目如果是xcworkspace,创建不同的target时,有个细节需要注意
1.需先将复制出来的target中libPods-XXXX删除
2.然后在Podfile中添加新的target
3.pod install 重新生成libPods-XXXX测试文件
参考资料:
如何在iOS项目中创建多个target?