【问题标题】:Objective c iphone - How to differentiate the production build with qa/debug testng buildObjective c iphone - 如何区分生产版本与 qa/debug testng 版本
【发布时间】:2014-04-22 07:22:25
【问题描述】:

我的实际要求是

我想对一些值做一些改变,这些值对于不同的构建是不同的,

比如说:

我们在我们的应用程序中使用了 Parse.com 框架和 Flurry 集成。 我们需要为这些 parse / flurry 集成提供一些键

作为

 [Parse setApplicationId:@"6Z8Antqqf4u5TZFbUtzePuoPnOjqgkFHsQXmVtGW" clientKey:@"SiDnoJsvHjMBdaFw3QRpm2mvVblJsdYYkWHBL8hR"];

这里我想为不同类型的构建使用不同的密钥以避免影响原始生产构建。

那么我该如何区分

生产构建(clint构建/应用商店构建) AdHoc 构建(内部分布式构建,例如 Testflight/appearean) QA/调试构建(实施时进行内部测试)

【问题讨论】:

    标签: ios iphone objective-c xcode macros


    【解决方案1】:

    您可以使用预处理宏。导航到您的目标,然后转到构建设置(确保已选择所有设置,而不是基本设置):

    使用示例:

    #ifdef DEBUG
            NSString* appKey = @"DEBUG_KEY";
    #else
            NSString* appKey = [config valueForKey:@"AppKey"];
    #endif
    

    【讨论】:

      【解决方案2】:

      预处理宏可以工作,但是您可以使用更可靠和更有条理的方式来执行此操作,允许您将所有调试、临时和生产环境变量存储在各自的位置。

      那就是为每个环境创建一个单独的目标,并为每个目标分配一个不同的 .m 文件。

      例如创建调试环境:

      1) 创建(通过复制当前目标)一个新的“调试”目标。

      2) 创建一个“configs”文件,我们称之为configs.m/.h

      3) 将您的每个服务 Parse、Facebook、Flurry 等的所有应用密钥添加到您的 configs.m 文件中。

      4) 复制该文件,并将其命名为 configs_debug.m。 (选择“调试”目标作为其目标)。

      5) 确保每个文件指向其正确的目标,方法是单击它并检查其身份下的“目标成员资格”,然后在右侧的实用程序窗口中键入。 configs.m 应该指向“production”目标,configs_debug.m 应该指向“dev”目标。

      每个文件在 .m 中看起来基本相同,唯一需要更改的是键的值。

      Configs.h

      extern NSString * const PARSE_APP_KEY;
      @interface Configs : NSObject
      @end
      


      Configs.m(指向“生产”目标)

      #import "Configs.h" 
      
      NSString * const PARSE_APP_KEY = @"yyyyyyyyyy";
      
      @implementation Configs
      
      @end
      


      Configs_debug.m(指向“调试”目标)

      #import "Configs.h"
      
      NSString * const PARSE_APP_KEY = @"xxxxxxxxx";
      
      @implementation Configs
      
      @end
      

      【讨论】:

        猜你喜欢
        • 2020-11-24
        • 1970-01-01
        • 2013-04-21
        • 1970-01-01
        • 2015-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多