1.需求:目前公司线上有一款App,想要在此基础上开发一款新的App,90%的页面是一样的,只是个别页面不一样
2.解决方式:
(1)直接复制工程,修改Bundle Identifier,开发指定页面,上线应用(不建议,因为后续如果公共部分有bug,需要在两个工程都修改代码)
(2)多target方案,通过宏隔离实现
3.多target方案
(1)duplicate target
1.png
(2)修改target名称,我的以ZhiFuBao为例
(3)修改plist文件,单击文件进行修改,命名规则:必须和target名称相同
(4)找到新的target的Build Settings,搜索packaging,修改.plist名称为target的名称
2.png
(5)修改target对应的scheme名称,菜单路径(Product->Scheme->Manage Schemes),注意修改名称时,需要单击,不能双击。名称与target名称一致即可
3.png
(6)不同的target设置不同的宏,代表当前运行的是哪个版本. 在不同的target找到Build Settings,搜索preprocessing
4.png
我这里是在ZhiFuBao的target定义了kZhifFuBaoApp=1
在SanZhiXie的target定义了kSanZhiXieApp=1
在debug和release均做了定义
(7)代码实例:使用条件编译根据不同的宏定义进行隔离代码
5.png
(8)设置AppIcon,在Assets中再创建一个新的AppIcon,分别指定不同的名称
6.png
(9)不同的target配置不同的AppIcon,在新的target中的Build Settings搜索asset,输入正确的AppIcon的名称
7.png
(10)在新的target中设置一个新的Bundle Identifier
8.png
(11)在新的target中设置一个新的应用名称
9.png
(12)切换不同的scheme,运行App
10.png
网友评论