编译项目时是否可以检测TARGET

时间:2018-01-25 14:10:55

标签: ios xcode

我有一个有两个目标的应用程序,精简版/目标里面有google admob广告。 现在我使用下面的代码来处理。

//App_Prefix.pch
#define _lite
在appDelegate

// AppDelegate.m
#ifdef _lite

@import GoogleMobileAds;
#endif
@implementation  AppDelegate

编译项目时是否可以检测TARGET。 下面的代码可以检测目标,

  //-------------detect target
  #define _lite [ [[[NSProcessInfo processInfo]environment]objectForKey:@"TARGET"] isEqualToString:@"lite"]

但它不适合

之前的部分
@implementation 

您的评论欢迎

1 个答案:

答案 0 :(得分:3)

选项1

使用可以为每个目标定义Preprocessor Macros

  1. 转到您的项目设置
  2. 选择目标
  3. Build Settings转到Preprocessor Macros
  4. 为所有配置(调试/发布)添加宏,例如APP_TARGET_A

    enter image description here

  5. 对所有其他目标执行相同操作

  6. 现在,您可以像使用.pch文件中定义的宏一样使用它。

    #define APP_TARGET_A
    @implementation 
    #endif
    

    选项2

    每个目标可以有不同的.pch个文件。复制.pch文件,例如Target_A_Prefix.pch Target_B_Prefix.pch并将其添加到项目中(取消选中所有目标)。

    在构建设置中,转到Prefix Header并为每个配置设置.pch的路径。对所有目标都这样做。

    enter image description here