有没有办法找出运行时使用的方案?
可能有更好的方法,我正在尝试使用Scheme名称设置访问环境(生产与开发)。
目前我在#define ENV @"PROD"
文件中使用App-Prefix.pch
来执行此操作,但在将pkg发送给Apple进行审核时,有可能错过这个:(
答案 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
配置,就会设置此变量: