Настройка конфигурации / схемы 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.