【问题标题】:Maintaining different URLs for different Build Configurations in xcode在 xcode 中为不同的构建配置维护不同的 URL
【发布时间】:2014-12-25 01:49:05
【问题描述】:

我为我的 xcode 项目创建了四种不同的构建配置,它们是 QA、STAGING

现在我的问题是 xcode 4 非常擅长检测 DEBUG 模式,因为已经有预定义的宏可用,但是如何检测我的自定义构建,以便我可以为不同的构建配置传递不同的 url?

【问题讨论】:

    标签: iphone ios xcode xcodebuild


    【解决方案1】:

    在每个构建配置中,进入构建设置并添加 #define THIS_IS_QA=1 然后在您的代码中对其进行测试并像使用 DEBUG 宏一样使用它

    【讨论】:

    • 您的意思是在预处理器宏中还是在其他地方?在构建设置中我应该在哪里输入“#define THIS_IS_QA=1”?
    • 同一个地方 DEBUG 被定义是
    • 在为调试/发布版本更改设置时,预处理器宏是您的朋友
    • 好的,在预处理器宏中做到了。在代码中,当我使用“#if THIS_IS_QA”未终止条件指令时出现以下错误
    • 语法错误,你需要一个#endif
    【解决方案2】:

    预处理器宏路由工作正常,并且可以快速实现。但它不能很好地扩展,因为您最终会得到每个变量的副本。我认为效果最好的路线是执行以下操作。

    1. 在项目或目标构建设置中将配置定义为用户定义的设置。
      • 这样做允许为每个构建配置指定不同的值(例如,调试或发布,甚至是自定义配置)
    2. 在项目 plist 文件中创建信息属性。
      • 这允许通过 plist 访问构建设置。
    3. 编写一次代码以从 plist 文件中加载值。

    例子:

    在项目中创建一个名为“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
    

    【讨论】:

      猜你喜欢
      • 2011-03-16
      • 2010-12-05
      • 2021-11-30
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2015-09-17
      相关资源
      最近更新 更多