项目开发中会存在测试、正式等不同环境,需对应不同接口Host地址、项目名称等等配置。如果每次只有一个项目target的话每次打包的时候替换会很麻烦,而且容易出错。所以我们可以通过创建多个不同配置的target以区分不同环境。
1.复制原有target
复制原有target
屏幕快照 2017-12-06 13.41.03 3.png
选择仅复制
屏幕快照 2017-12-06 13.44.53.png
复制完成后出现一个copy的target
F2F53467-1987-485B-81A9-CF123C5D7816.png
方便区分可将target进行改名(直接在target上回车即可编辑)
277A5A01-E010-4CDC-B11A-A3552F5DAAE5.png
2.修改plist文件名
在复制target操作后不仅复制出了一个target,还会复制出一个对应的Info.plist文件
7598FA90-9A11-4AC2-835F-C29C0F7BFA8D.png
将复制出来的plist文件改名,好对应区分
BCF883AD-1BC6-49B9-82BB-CDA3AA5C8D8E.png
3.为刚刚复制出来的target选择对应的plist文件
648AD266-A643-4651-B2BF-49EE25D944E0.png选择刚刚改名的plist文件
89DFD276-F543-466D-98D8-E7E1E8DE4D3F.png
4.修改Scheme名,方便区分
选择Manage Schemes
屏幕快照 2017-12-06 14.09.45.png
回车编辑
D85FA98A-AD22-4EB3-BA23-C76ACEF2EBC4.png
完成
F5B7D196-33FA-4C4C-8E2A-2E8CEC5EA593.png
5.预定义宏已区分测试target(Build Setting–>Preprocessor Macros)
这个宏是一个全局宏,在所有/整个工程的代码中都是有效的,我们可以在这里添加上环境与处理的宏(例如:JW_TESTMARK,这个是随便自己取的)
1E796A3A-F94B-4E1E-8F85-BFC03F2C4760.png
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删除
image.png2.然后在Podfile中添加新的target
image.png3.pod install 重新生成libPods-XXXX测试文件
image.png参考资料:
如何在iOS项目中创建多个target?
网友评论