多个Target管理控制生产跟开发版本

多个Target管理控制生产和开发版本

简单的使用多Target步骤

  1. 复制出一个新的Target
    多个Target管理控制生产跟开发版本
    复制出来的新Target名字如下
    多个Target管理控制生产跟开发版本
  2. 修改Target的名字、plist名字和Scheme名字
    将Target、plist和Scheme的名字修改成自己喜欢的名字。如CYSTest-dev。
    Target名字直接右键修改;
    Scheme名字修改如下图:
    多个Target管理控制生产跟开发版本
    在这里直接修改
    多个Target管理控制生产跟开发版本
    plist文件的名字修改过之后,要给对应Target选择回plist文件
    多个Target管理控制生产跟开发版本
    多个Target管理控制生产跟开发版本

到这一步之后,基本一个新的Target就完成了。接着可以对新的Target进行一些修改,让它和原来的Target区分开来,方便我们调试的时候分辨出谁是谁。

  1. 修改Bundle Identifier
    多个Target管理控制生产跟开发版本
    之后运行这2个Target之后,在模拟器上,就看见他们分别是2个APP了。我们还可以修改他们的app名字,区分的更清楚。
    多个Target管理控制生产跟开发版本

    注意:下面Bundle Display Name 默认是Product Name,所以,我们去修改Product Name就可以将app安装到手机/模拟器上的名字改成我们想要的名字。
    多个Target管理控制生产跟开发版本

在对应Target下,Build Settings,搜Product Name,修改对应的值。
多个Target管理控制生产跟开发版本
修改之后,如下
多个Target管理控制生产跟开发版本
运行2个Target,可以看见app 名字已经改好,方便我们区分2个Target
多个Target管理控制生产跟开发版本

  1. 配置预处理宏/编译器标识
    最后我们要配置Target的预处理宏/编译器标识,判断我们运行的是哪个Target,方便处理不同Target之间的区别。

多个Target管理控制生产跟开发版本

#if DEV
    NSLog(@"开发");
#else 
    NSLog(@"非开发");
#endif

Test-dev Target运行下,输出如下:

2016-03-31 11:34:10.387 开发版[2562:115035] 开发

也可以在对应的Target的Build Settins–Custom Compiler Flags中,Other C Flags 设置
多个Target管理控制生产跟开发版本
之后也是只要判断

#ifdef DEVELOP
    NSLog(@"这个是开发的");
#else
    NSLog(@"这个不是开发的");
#endif

dev Target 运行输出

2016-03-31 11:41:10.481 开发版[2673:122764] 这个是开发的