iOS一个项目多个target,实现测试或者一个工程多个app管理

        公司突然给了个需求,要把另一个项目整合到当前的项目里面,说是大部分页面代码共用少部分差别。后来我想了想,这个需求理论上是可以做的,但是要看两个项目的差别多大,其次!代码写得是不是很规范,耦合性高不高,在我看来我接手的项目代码写得很乱所以不赞成的,但是上面的要求,我还是去研究了一下具体的实现方案。

        就如标题所说的,多个target的创建和一些配置而已,直接上图:


①直接复制,会在下方多出一个 同名+copy 的target

iOS一个项目多个target,实现测试或者一个工程多个app管理_第1张图片

②双击修改名称成你想要的名字


iOS一个项目多个target,实现测试或者一个工程多个app管理_第2张图片

③添加宏定义


iOS一个项目多个target,实现测试或者一个工程多个app管理_第3张图片

④同样,在原来的target添加宏定义,值=0,(注意debug和release一起加)


iOS一个项目多个target,实现测试或者一个工程多个app管理_第4张图片

⑤修改bundleIdentifier和displayName。


iOS一个项目多个target,实现测试或者一个工程多个app管理_第5张图片

⑥修改启动图和icon。


iOS一个项目多个target,实现测试或者一个工程多个app管理_第6张图片

⑦在pch文件使用


iOS一个项目多个target,实现测试或者一个工程多个app管理_第7张图片

⑧在.m文件代码中使用(我这是AppDelegate里面的didFinsh方法里面,在这里控制keywindow等就可以控制根试图,首页等差别文件)


iOS一个项目多个target,实现测试或者一个工程多个app管理_第8张图片

⑨切换target运行,可以发现导入的头文件和.m文件的输出和预期一样。


iOS一个项目多个target,实现测试或者一个工程多个app管理_第9张图片

⑩新建文件的时候或者拖入文件的时候记得选择合适的target,谁需要用到这个文件就选谁,都需要就全选(全部全选的话,应该会给编译带来弊端)

iOS一个项目多个target,实现测试或者一个工程多个app管理_第10张图片

*顺便说一下,新建一个目录来管理另一个target的专属文件,也就是差异文件,使项目结构清晰易读。


iOS一个项目多个target,实现测试或者一个工程多个app管理_第11张图片

*还有target也是可以直接点击+号新建的,这样建出来的target会附带很多文件


iOS一个项目多个target,实现测试或者一个工程多个app管理_第12张图片

可以看到,跟全新的项目一样,需要慢慢配置,我没去仔细研究,有兴趣的自己试试

iOS一个项目多个target,实现测试或者一个工程多个app管理_第13张图片

    最后,理解了这层作用以后,以后新写的项目尽量把这个问题考虑进去,代码封装好一些,耦合性低,复用性高,方便以后扩展。

你可能感兴趣的:(iOS一个项目多个target,实现测试或者一个工程多个app管理)