关于最佳做法的问题。
有没有办法以编程方式检测是否正在为AdHoc配置编译应用程序,如果是,请在应用程序中启用该功能?
例如,我正在考虑根据应用程序是否为AdHoc与发布配置,在beta和prod环境之间启用切换。
这样我们就可以让测试人员在同一个应用程序中切换服务器环境。
可以使用#define执行此操作,但我想我会通过检测当前配置来询问是否有更优雅的方法来执行此操作。
答案 0 :(得分:7)
您可以使用项目中的Preprocessor Macros
设置或目标信息在配置中设置自定义定义。这就像你在源中有#define
'变量一样。
在发布配置中,将GCC_PREPROCESSOR_DEFINITIONS
(“预处理器宏”)设置为MYAPP_RELEASE=1
。然后,您可以使用此代码在编译时更改功能:
#ifdef MYAPP_RELEASE
NSString *title = @"Release Version";
#else
NSString *title = @"Beta Version";
#endif
答案 1 :(得分:0)
您还可以为配置使用不同的plist键,然后在运行时从.plist文件中读取您的应用程序,如...
CFBundleRef mainBundle;
CFDictionaryRef bundleInfoDict;
mainBundle = CFBundleGetMainBundle();
bundleInfoDict = CFBundleGetInfoDictionary(mainBundle);
if (bundleInfoDict != NULL) {
// check for your custom config key here
}