Цель c iphone - Как дифференцировать сборку сборки с помощью qa/debug testng build

Мое фактическое требование

Я хочу внести некоторые изменения в некоторые значения, эти значения отличаются для разных построений,

Например, скажем, например:

Мы использовали рамочную работу Parse.com и интеграцию Flurry в нашем приложении. Нам нужно предоставить некоторые ключи для этих синтаксических разборок/флеш-интеграции

в виде

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

Здесь я хочу использовать разные ключи для разных типов сборок, чтобы избежать создания исходной сборки.

Итак, как я могу дифференцировать

Создание сборки (сборка clint build/appstore). Создание AdHoc (внутренняя распределенная сборка, например Testflight/lookarean). Создание QA/Debug (внутреннее тестирование во время реализации)

2 ответа

Вы можете использовать макросы предварительной обработки. Перейдите к своей цели и перейдите к настройкам сборки (убедитесь, что все выбрано, а не базовое):

Пример использования:

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


Макросы предварительной обработки работают, однако вы можете использовать более надежный и организованный способ сделать это, позволяя хранить все отладочные, вспомогательные и производственные переменные, хранящиеся у них в соответствующих местах.

Это было бы создание отдельной цели для каждой среды и назначение другого файла.m для каждой цели.

Например, чтобы создать среду отладки:

1) Создайте (путем дублирования вашей текущей цели) новую цель "отладки".

2) Создайте файл "configs", позвоните ему configs.m/.h

3) Добавьте в свой файл configs.m все свои ключи приложения для каждого из ваших сервисов Parse, Facebook, Flurry и т.д.

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

licensed under cc by-sa 3.0 with attribution.