在运行时查找Xcode构建方案名称

时间:2013-04-06 23:49:14

标签: ios xcode

有没有办法找出运行时使用的方案?

可能有更好的方法,我正在尝试使用Scheme名称设置访问环境(生产与开发)。

目前我在#define ENV @"PROD"文件中使用App-Prefix.pch来执行此操作,但在将pkg发送给Apple进行审核时,有可能错过这个:(

2 个答案:

答案 0 :(得分:23)

我搜索到了这个答案,因为我真的不喜欢创建额外的目标或额外的配置集。这两个选项只会造成巨大的配置同步问题。

所以,在黑客攻击Xcode几个小时之后,这就是我提出来的:

第1步:添加密钥" SchemeName"到您的Info.plist,类型为字符串。

第2步:编辑您的默认方案,并在Build - >预操作添加了一个新的运行脚本,其中包含以下内容:

/usr/libexec/PlistBuddy -c "Set :SchemeName \"$SCHEME_NAME\"" "$PROJECT_DIR/$INFOPLIST_FILE"

确保并从"提供来自"。

的构建设置中选择目标

第3步:现在重复该计划多次(管理计划... - >选择现有计划 - >点击齿轮图标 - &gt ;重复)例如,您可以创建开发,登台,制作,App Store等。不要忘记点击"共享"如果你想在版本控制中携带这些方案。

第4步:在代码中,您可以检索如下值:

NSString *schemeName = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"SchemeName"];

现在,代码可以在运行时正确配置。没有令人讨厌的预处理器宏来处理,也没有脆弱的配置来维护。

答案 1 :(得分:3)

在模拟器或设备上运行应用时,DEBUG变量已设置,允许您从代码中使用它:

#ifdef DEBUG
    // Something
#else
    // Something else
#endif

您可以从目标的构建设置中看到此变量:

只要在Run(产品 - >方案 - >编辑方案)上设置了Debug配置,就会设置此变量:

enter image description here