文章目录:
-、需求
1、多target创建
2、多target在同一个设备上运行
3、多target使用不同的桌面图标以及推送图标
4、预编译`宏`
需求:
1、项目需要不定时打包【测试环境,预生产环境,生产环境】等相关需求
2、项目不同环境配置不同
3、两个项目区别不大,如访问地址,App icon ,推送角标
4、不同环境要同时安装在同一手机上

基于以上需求,如果每次都是手动配置,一则比较麻烦,二则容易配置错,又或者整个copy一个项目,代价太大。
为此,iOS为我们提供了多TARGETS来解决以上问题
一、多target创建
1、如图所示,先复制一份target
。右击在弹出的框中,选择Duplicate Only
,即可复制一个target
。

2、双击可以为我们新复制的target
修改名字,如图所示:

3、新创建的target
对应plist
文件也会重新生成一份,我们【show in finder】
为plist
文件修改名称,然后在项目中删除索引,并顺便把plist
文件放到与项目本身的target同级目录,导入项目,这样后续维护方便。

4、以下是我新修改完成的plist文件名称及位置

5、修改scheme的名字,如图所示操作步骤



6、接下来应该修正新target
的plist
路径。因为改名并挪动了位置
,双击以下图中的第五步,为新target纠正plist名称以及路径

7、注意:因新plist文件拖拽了位置,路径前面需要加上项目名称/***plist
,否则会导致项目找不到plist
文件

二、多target在同一个设备上运行
1、在两个target中分别设置不同 Bundle Identifier 就可以实现

2、运行项目,选不同Scheme去运行

3、效果展示

三、多target使用不同的桌面图标以及推送图标
1、创建App Icon

2、App Icon 改名

3、已修改的 App Icon名称 AppIcon-Production

4、配置target使用我们新创建的AppIcon-Production

四、预编译宏
在同一个target下,我们会有不同的配置,如果都在代码里面进行判断,每次都要手动修改,不是我们想要的,太麻烦。针对这个问题,我们可以用预编译宏来解决。target里会有一个Debug模式下的默认的宏:Debug=1,我们可以继续添加,或者直接使用这个宏来进行不同的配置。比如我肯定会新加一个宏来使用。
1、搜索 Preprocessor Macros

2、新增预编译宏TARGET_VERSION=1

3、接下来我们验证预编译宏
#if TARGET_VERSION
NSLog(@"原target");
#else
NSLog(@"新target");
#endif


网友评论