有没有办法找出运行时使用的方案?
可能有更好的方法来实现这一点,我正在尝试使用Scheme名称设置访问环境(生产与开发).
目前我#define ENV @"PROD"
在App-Prefix.pch
文件中使用这样做,但是在将pkg发送给苹果进行审核时有机会错过这个:(
Dav*_*ess 27
我搜索到了这个答案,因为我真的不喜欢创建额外目标或额外配置集的想法.这两个选项只会造成巨大的配置同步问题.
因此,在黑客攻击Xcode几个小时之后,这就是我提出的:
步骤1:使用类型字符串将关键字"SchemeName"添加到Info.plist.
步骤2:编辑默认方案,然后在Build - > Pre-actions上添加一个新的Run Script,其中包含以下内容:
/usr/libexec/PlistBuddy -c "Set :SchemeName \"$SCHEME_NAME\"" "$PROJECT_DIR/$INFOPLIST_FILE"
Run Code Online (Sandbox Code Playgroud)
确保并从"提供构建设置"下选择目标.
步骤3:现在可以根据需要多次复制该方案(管理方案... - >选择现有方案 - >点击齿轮图标 - >复制)例如,您可以创建开发,分段,生产,App Store等.如果您希望在版本控制中携带这些方案,请不要忘记单击"共享".
第4步:在代码中,您可以像这样检索值:
NSString *schemeName = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"SchemeName"];
Run Code Online (Sandbox Code Playgroud)
现在,代码可以在运行时正确配置.没有令人讨厌的预处理器宏来处理,也没有脆弱的配置来维护.
在模拟器或您的设备上运行应用程序时,该DEBUG
变量已设置,允许您从代码中使用它:
#ifdef DEBUG
// Something
#else
// Something else
#endif
Run Code Online (Sandbox Code Playgroud)
您可以从目标的构建设置中看到此变量:
一旦Run
在Debug
(产品 -> 方案 -> 编辑方案)上设置配置,此变量将被设置:
归档时间: |
|
查看次数: |
8787 次 |
最近记录: |