关于调试的target
优化 记录贴 说明贴 2018.4.23
起因
项目包含多种环境,默认的debug,release和通过bulid configuration配置的FAT(测试环境),UAT(预发布环境),每种环境都需要打包测试.
由于项目使用的是企业版开发者账号,而不方便统计全部测试人员的UDID,所以每次提交代码前需要手动更改为release证书以便Jenkins上的打出的包适用于所有手机.但日常调试工作需要develop证书,所以在代码入库时如果忘记更改会导致编译失败问题,给日常开发带来一些麻烦.
解决
为解此问题,添加一专门用于调试的target,新的target仅用于调试,全部配置为develop证书,不在更改原来默认的target,可以减少一些使用上的麻烦。以下是几点使用注意和优化的说明。
说明
下图中的EbikeMaintainDev为原"EbikeMaintain"target通过duplicate复制出来的,将EbikeMaintainDev都配置成develop证书,调试工作在EbikeMaintainDev中进行.不影响原target的打包操作.
使用注意
1.新建一个类要注意勾选两个target
2.假如新建类文件时没有勾选另一个target,如果没有调用该类的方法,编译期间并不会有错误提示,造成很多不必要的麻烦
3.为了避免由于疏漏导致不必要的调试问题,引入python脚本,让问题在编译期就可以暴露出来
-
脚本添加,在下图位置添加 Run Script
添加如下命令,执行添加在工程主目录下的脚本,用于编译时检查两个target的不同,排查出没有在新的target中勾选索引的类
命令:
python diffTargets.py EbikeMaintain EbikeMaintainDev ./EbikeMaintain.xcodeproj/project.pbxproj
-
下图为添加脚本后,类文件只在一个target中添加的报错情况
解决方案:
找到该类文件,在.m文件类的右侧的工具栏中勾选上另一个target
另:脚本添加在工程主目录文件夹下,执行命令在Build Phases中的Run Script中
其他: manage schemes 可以调换位置,方便调试
最后
脚本源码可在网上自行搜索,如有需要可私信我.
关于配置多环境Build Configuration和Target等具体使用及场景,可参考冰霜大神的文章
https://www.jianshu.com/p/83b6e781eb51