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