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