在开发过程中,我们有可能遇到过做马甲包的情况,更换APP名字、图标、启动图片,其他和主APP共用一套代码。此时如果复制重建项目则显得不好维护或者比较耗时。
此时我们可以使用同一个project,多个targets,自定义宏,独立资源文件来进行管理,在修改bug时只需修改一套代码,在分别打包时,可以快速切换马甲包进行打包。
1、创建马甲包targets
我们首先打开主APP项目,然后按照下图,从原有的targets上复制一个新的targets:
![](https://img.haomeiwen.com/i3222019/7e521942a46c6cc2.png)
然后把targets重命名你自己想要的名字即可,然后修改相应的APP名字,id等信息。
2、为targets设置自定义宏
点击自己想要自定义宏的targets,进入Build Settings,找到 Other C Flags,加上自定义的宏,宏的定义如下:-Dxxx,其中-D为固定格式,xxx为自定义的宏。每个targets设置不同的宏作为自定义的标识,以供代码里面做区分,如下图:
![](https://img.haomeiwen.com/i3222019/cf0747b2f70c4586.png)
3、使用
我们使用刚才自定义的宏来区别每个targets,使用预编译,如下图:
![](https://img.haomeiwen.com/i3222019/0d085df5c2e812fd.png)
4、独立资源文件夹
我们可以把共用的资源图片放在一个Asset.xcassets里面,然后所有targets共享。其他需要定制的APP图标,启动图片等则分开放置即可,切换targets不需要重新修改APP图标和启动图片等自定义的资源文件。
![](https://img.haomeiwen.com/i3222019/600feed3f79eaa46.png)
![](https://img.haomeiwen.com/i3222019/f0735091cca20ec6.png)
![](https://img.haomeiwen.com/i3222019/1a96a036d05f658c.png)
我们在私有资源文件夹里面放置各种的appicon、launchimage等私有资源。即可实现快速的切换targets动作,且切换时无需做其他多余动作。是不是简单又方便呢。
注意在创建新的targets时,要对被被复制的那个targets的私有资源文件进行检查,以免设置多重appicon、launchimage等资源文件。
![](https://img.haomeiwen.com/i3222019/4bce4d84765d5102.png)
切换的Scheme可以重命名。
如有疑问或更好的方案,还请留言交流。
网友评论