关于最佳实践的问题。
有没有一种编程方式可以检测应用程序是否正在为AdHoc配置编译,并在这种情况下启用应用程序中的某个功能?
例如,我考虑根据应用程序是AdHoc还是Release配置来启用测试版和生产环境之间的切换功能。
这样我们就可以给测试人员在同一个应用程序中切换服务器环境的能力。
可以使用 #define 来实现此功能,但想问是否有更优雅的方法来检测当前配置。
关于最佳实践的问题。
有没有一种编程方式可以检测应用程序是否正在为AdHoc配置编译,并在这种情况下启用应用程序中的某个功能?
例如,我考虑根据应用程序是AdHoc还是Release配置来启用测试版和生产环境之间的切换功能。
这样我们就可以给测试人员在同一个应用程序中切换服务器环境的能力。
可以使用 #define 来实现此功能,但想问是否有更优雅的方法来检测当前配置。
您可以使用项目或目标信息中的预处理器宏
设置,在配置中设置自定义定义。这与在源代码中使用#define
定义变量一样。
在您的发布配置中,将GCC_PREPROCESSOR_DEFINITIONS
("预处理器宏")设置为MYAPP_RELEASE=1
。然后,您可以使用此代码在编译时更改功能:
#ifdef MYAPP_RELEASE
NSString *title = @"Release Version";
#else
NSString *title = @"Beta Version";
#endif
你也可以为配置设置不同的plist键,然后在运行时让你的应用程序从.plist文件中读取,例如...
CFBundleRef mainBundle;
CFDictionaryRef bundleInfoDict;
mainBundle = CFBundleGetMainBundle();
bundleInfoDict = CFBundleGetInfoDictionary(mainBundle);
if (bundleInfoDict != NULL) {
// check for your custom config key here
}
NSString *myKey = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"myInfoPlistKeyName"];
- pix0r