我为我的Xcode项目创建了四个不同的构建配置,它们是QA、STAGING、UAT和PRODUCTION。我为每个构建配置都创建了一个不同的URL。
现在我的问题是,Xcode 4非常擅长检测DEBUG模式,因为已经有预定义的宏可用,但是我如何检测我的自定义构建,以便我可以针对不同的构建配置传递不同的URL?
我为我的Xcode项目创建了四个不同的构建配置,它们是QA、STAGING、UAT和PRODUCTION。我为每个构建配置都创建了一个不同的URL。
现在我的问题是,Xcode 4非常擅长检测DEBUG模式,因为已经有预定义的宏可用,但是我如何检测我的自定义构建,以便我可以针对不同的构建配置传递不同的URL?
在每个构建配置中,进入构建设置并添加#define THIS_IS_QA=1,然后在您的代码中测试它并像使用DEBUG宏一样使用它。
预处理器宏路线运行良好且实现快速。但是,由于您最终会得到每个变量的副本,因此它不具有良好的可扩展性。我发现最好的方法是执行以下操作:
示例:
在项目中创建名为“BASE_API_URL”的用户定义设置,并将调试配置设置为“http://www.test.example.com”,将发布配置设置为“http://www.example.com”。
然后,在plist中创建一个新的信息属性,其键为“BaseAPIUrl”,值为“$(BASE_API_URL)”
最后,在应用程序委托中定义基本URL时添加以下代码:
let baseUrl: NSString = NSBundle.mainBundle().infoDictionary?["BaseAPIUrl"]! as NSString