需求:目前公司的两款产品,共用相同代码,只有AppIcon、LaunchImage等部分图片资源不同,每次打包都要手动修改图片和displayName等,目前需要整合打包流程,实现自动替换资源,同时避免人工操作出现的bug。
解决思路:使用Xcode不同的target来区分版本。
第一步:新建target:
(1)双指点击TARGETS--->Duplicate-->选择DuplicateOnly
(2)创建成功后Xcode会复制原来项目target生成一个xxx copy对象(图片中Project copy),并生成一个xxxx copy-Info.plist文件(图片中的Project copy-Info.plist)。
第二步:创建新项目文件,修改新生成的plist文件路径,注意新项目添加路径及target选择(如图)
第三步:修改target、info.plist、ProductName、Bundle identifier、scheme名称及新项目的plist相对路径。
(1)、target、info.plist、ProductName、Bundle identifier.
(2)修改scheme
(3)修改新项目plist文件相对路径
(4)查看plist文件路径是否正确
第四步:新建NewProjectAssets.xcassets文件夹,更换新项目启动图(AppIcon),桌面图标(AppIcon)。
⚠️NewProject需要将.xcassets在 Build Phases -->Copy Bundle Resources添加依赖关系。(注意两个项目以后添加文件的依赖关系,需同步修改)
结果:无论打包还是运行都可以在这里选择。
扩展:
(1)可创建三个.xcassets文件,两个私有文件,一个基类,便于管理且减少冗余。
(2)可以定义预编译宏,来区分两个版本的不同代码。