Нет конфигурации в коде, поставляется с конфигурацией по умолчанию и разрешить обновления OTA(по воздуху)

Редактировать на GitHub

К конфигурация приложения относится все что вероятно будет изменено между развертываниями (App Store, TestFlight, локальная разработка) без изменения базового кода. В себя включает:

  • API-ключи для бекенда (как внутренних, так и внешних сервисов)
  • URL для удаленных ресурсов (API, которые использует ваше приложение)
  • Переключатели функций (премиум/бесплатное приложения)

Приложения иногда сохраняют конфигурацию как константы в коде. Это нарушение правил iOS-factor, которое требует строгого разделения конфигурации от кода. Конфигурация может существенно различаться между развёртываниями, код не должен различаться.

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

Существует множество способов ввода значений конфигурации во время сборки

  • Файлы конфигурации (e.g. JSON или YAML файлы)
  • cocoapods-keys чтобы лучше спрятать ключи и применить их к вашему iOS-приложению во время сборки
  • Индивидуальное решение (например, с использованием build phase)

Поскольку развертывания на платформе iOS значительно медленнее, чем на серверах, вам может потребоваться способ быстрого обновления конфигурации по воздуху (OTA - over the air) для быстрого реагирования на проблемы.

Обновления конфигурации OTA позволяют вам мгновенно:

  • Запустить A / B-тесты, чтобы включить определенные функции или изменения пользовательского интерфейса только для части активных пользователей.
  • Изменить API ключи
  • Обновите веб-хосты или другие URL-адреса, которые изменились
  • Удаленно отключить функции или скрыть кнопки

Без OTA-обновлений вам придется ждать около суток, пока Apple рассмотрит ваше приложение. Каждая подача на ревью также добавляет риск быть отклоненным и отсрочить потенциально срочное обновление.

В то же время вам может потребоваться совместимость с предыдущими версиями. Это означает, что пользователи, которые не могут выполнить обновление до последней версии iOS, могут вообще не иметь возможности устанавливать какие-либо обновления приложений. Предоставляя определенные обновления OTA, вы можете поддерживать старые версии вашего приложения.

Некоторые потенциальные подходы при реализации OTA-обновлений:

  • Реализуйте свое собственное решение
  • Готовые решение по типу Firebase remote config
  • Сервис с открытым исходным кодом, как FeatureFlags