iOS 管理项目-多Target

       需求:目前公司的两款产品,共用相同代码,只有AppIcon、LaunchImage等部分图片资源不同,每次打包都要手动修改图片和displayName等,目前需要整合打包流程,实现自动替换资源,同时避免人工操作出现的bug。

       解决思路:使用Xcode不同的target来区分版本。

      第一步:新建target:

     (1)双指点击TARGETS--->Duplicate-->选择DuplicateOnly

iOS 管理项目-多Target_第1张图片
iOS 管理项目-多Target_第2张图片

        (2)创建成功后Xcode会复制原来项目target生成一个xxx copy对象(图片中Project copy),并生成一个xxxx copy-Info.plist文件(图片中的Project copy-Info.plist)。

iOS 管理项目-多Target_第3张图片

        第二步:创建新项目文件,修改新生成的plist文件路径,注意新项目添加路径及target选择(如图)

iOS 管理项目-多Target_第4张图片
iOS 管理项目-多Target_第5张图片

        第三步:修改target、info.plist、ProductName、Bundle identifier、scheme名称及新项目的plist相对路径。

        (1)、target、info.plist、ProductName、Bundle identifier.

iOS 管理项目-多Target_第6张图片

        (2)修改scheme

iOS 管理项目-多Target_第7张图片
iOS 管理项目-多Target_第8张图片

        (3)修改新项目plist文件相对路径

iOS 管理项目-多Target_第9张图片
iOS 管理项目-多Target_第10张图片

        (4)查看plist文件路径是否正确

iOS 管理项目-多Target_第11张图片

        第四步:新建NewProjectAssets.xcassets文件夹,更换新项目启动图(AppIcon),桌面图标(AppIcon)。

iOS 管理项目-多Target_第12张图片

        ⚠️NewProject需要将.xcassets在 Build Phases -->Copy Bundle Resources添加依赖关系。(注意两个项目以后添加文件的依赖关系,需同步修改)

iOS 管理项目-多Target_第13张图片

        结果:无论打包还是运行都可以在这里选择。

iOS 管理项目-多Target_第14张图片
iOS 管理项目-多Target_第15张图片

扩展:

(1)可创建三个.xcassets文件,两个私有文件,一个基类,便于管理且减少冗余。

(2)可以定义预编译宏,来区分两个版本的不同代码。

你可能感兴趣的:(iOS 管理项目-多Target)