Настройка конфигурации / схемы xcode для бета-распространения

Я пытаюсь создать способ распространения бета-версии моего приложения через Testflight без перезаписи рабочей версии. Я хотел бы иметь возможность узнать в коде, является ли это бета-сборкой или производственной сборкой (то есть каким-то образом определить #if BETA_VERSION, аналогично глобальной переменной DEBUG), и я хотел бы иметь возможность дифференцировать ее с помощью отдельный значок приложения на трамплине, а также другое имя приложения (например, MyApp Beta или аналогичное).

Я настроил бета-конфигурацию, продублировав конфигурацию релиза, и у меня уже есть профиль обеспечения для сборок AdHoc (я распространял их через Testflight в течение последних шести месяцев или около того). Я знаю, что для изменения имени приложения мне нужно изменить свойство отображаемого имени пакета в файле plist проекта, но я не совсем уверен, как создать отдельный "профиль" для хранения всех этих изменений.

Я попытался прочитать эту статью, но не смог заставить ее работать, и я случайно испортил все свои профили обеспечения при выполнении инструкций.

Я боролся с этим уже несколько недель. Детали этого процесса довольно непрозрачны, поэтому любые подробные инструкции или указатели особенно приветствуются.

Заранее спасибо!

PS это, вероятно, не поможет, что я действительно запутался в связи между целями, схемами и конфигурациями в XCode.

1 ответ

Решение

В моем проекте я использую три конфигурации: Release, Beta и Debug, где Beta является дубликатом Release. В каждой из трех конфигураций я включаю следующее в настройки сборки моей цели:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) CONFIGURATION_$(CONFIGURATION)

Это будет определять отдельный макрос препроцессора для каждой конфигурации. В своем коде вы можете сделать следующее:

#if defined(CONFIGURATION_Beta)
    // Something that should only happen in Beta builds
#endif

Вы можете определить дополнительные параметры сборки для каждой конфигурации в категории "User-Defined" (внизу настроек сборки в XCode), а затем ссылаться на них в своем Info.plist файл. Например, вы можете определить пользовательский BUNDLE_ID настройки сборки, которые отличаются для сборок Release, Beta и Debug, а затем установите значение CFBundleIdentifier в вашем Info.plist подать в ${BUNDLE_ID}, что позволит вам установить версии Release, Beta и Debug рядом на ваше устройство.

Обновить:

Если вы хотите увидеть хороший пример того, как все это настроить, проверьте конфигурацию проекта в Cheddar для iOS.

Другие вопросы по тегам