Objective c iphone - 如何使用qa / debug testng构建区分生产构建

时间:2014-04-22 07:22:26

标签: ios iphone objective-c xcode macros

我的实际要求是

我想对某些值进行一些更改,这些值对于不同的版本是不同的,

比如说:

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

作为

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

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

那我怎么能区分

生产版本(clint build / appstore build) AdHoc构建(内部分布式构建,如Testflight / appearean) QA / Debug build (实施时进行内部测试)

2 个答案:

答案 0 :(得分:1)

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

enter image description here

使用示例:

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

答案 1 :(得分:0)

预处理宏工作,但是您可以使用更可靠和有组织的方式来执行此操作,从而允许您将所有调试,特殊和生产环境变量保存在各自的位置。

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

例如,要创建调试环境:

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

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

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

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

5)确保每个文件都指向正确的目标,方法是单击它并检查其目标成员资格"在身份下并在右侧的“工具”窗口中键入。 configs.m应指向"生产" target和configs_debug.m应该指向" dev"目标

每个文件在.m中看起来基本相同,只需要更改密钥的值即可。

<强> Configs.h

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


Configs.m (指向目标&#34;制作&#34;)

#import "Configs.h" 

NSString * const PARSE_APP_KEY = @"yyyyyyyyyy";

@implementation Configs

@end


Configs_debug.m (指向目标&#34;调试&#34;)

#import "Configs.h"

NSString * const PARSE_APP_KEY = @"xxxxxxxxx";

@implementation Configs

@end