Xcode 配置多个target

在实际开发中,我们往往需要配置多个运行环境,比如测试版和证书版,同一套代码,需要生产两个名字不一样,证书不一样,服务器不一样的产品。这时候就需要配置多个target来管理了。

复制target

  • 在xcode文件结构中,点击项目文件,然后在右边的工作区的左栏找到TARGETS,然后右击原来的target,然后选择【Duplicate】就可以复制一个和target副本出来,并且会生成一个info.plist文件副本和一个scheme副本。如下图
  • 修改target名称,单击多个TargetDemo copy ,然后在点击一下就可以修改名称TargetDemoTest


  • 修改Scheme名称,在Xcode左上角点击Scheme,然后在点击 Manage Scheme。



    在Schemem列表中选择targetcopy,然后在单击一下就可以修改Scheme名称了

配置info.plist

  • 在上一步中,复制target的时候提到过也会复制出一份info.plist文件,而且这个文件在项目的根路径,和原来的info.plist文件不是同一个路径。


  • 先将plist文件改名为"TestInfo.plist",然后将文件拖入代码文件路径,和原来的plist文件同一路径。


  • 回到xcode中,将原来的copy的plist文件引用删除,把新的TestInfo.plist拖到代码文件夹中。

注意:拖入文件的时候,要选择copy出来的target,也就是TestTarget

修改项目名称和Bundle Identifier

  • 修改Bundle Identifier,点击新的target,在 General 中直接修改


  • 修改项目名称,选择TestInfo.plist文件,修改Bundle name

添加预编译宏

在代码中,我们需要判断运行的是哪个target,做一些业务判断。

  • 在新的target中,点击Build Setting ,搜索 “preprocessor Macros”,在配置项中添加 TEST 宏,Debug和 Release都要添加


运行程序

分别运行两个Scheme,可以看到2个App已经安装到模拟器


宏判断

在appdelegate 添加以下判断
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#ifdef TEST
NSLog(@"测试版本");
#endif
return YES;
}
在运行test Scheme时就可以看到打印

更多设置

现在两个target完全独立,要设置什么都可以在Build Setting 设置,包括证书,或者是应用的Logo都可以单独设置。

你可能感兴趣的:(Xcode 配置多个target)