В итоге я решил, что лучше всего решить эту проблему без использования конфигураций сборки.Мое приложение использует встроенную покупку для поддержки полной версии, не являющейся облегченной.Поэтому я хочу, чтобы каждая функция была скомпилирована и готова к работе.
Теперь я вручную обновляю идентификатор пакета, если я хочу переключаться между полной и облегченной версиями, и проверяю это при запуске приложения.Я должен изменить идентификатор пакета в любом случае, когда я отправляю любую версию, таким образом, я изменяю один файл, и нет дублирования.В приложении я вызываю метод ниже, чтобы включить / отключить функции Lite.
+ (BOOL)isLiteVersion {
static BOOL haveCheckedLiteStatus = NO;
if (haveCheckedLiteStatus == NO) {
BOOL isLiteApp = [[[NSBundle mainBundle] bundleIdentifier] rangeOfString:@"lite"].location != NSNotFound;
isLite = isLiteApp && [[NSUserDefaults standardUserDefaults] boolForKey:kUpgraded] == NO;
haveCheckedLiteStatus = YES;
}
return isLite;
}