Middle
74
questionbank

Как изменить иконку приложения в зависимости от среды?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

В зависимости от среды (например, Dev, Staging, Prod) можно использовать:

  1. Создание отдельных целей (Targets) для каждой среды.
  2. Использование конфигурационных файлов (.xcconfig).
  3. Добавление кастомных ключей в Info.plist.

Процесс:

  • Создать дубликаты основной цели приложения для каждой среды.
  • В настройках каждой новой цели изменить Info.plist File или добавить ключ CFBundleIconFiles и указать имя файла с иконкой.
  • В .xcconfig файлах для каждой среды определить переменную, указывающую на соответствующий Info.plist.
  • В Build Settings основной цели установить Info.plist File на ${INFO_PLIST_FILE} (где INFO_PLIST_FILE - переменная из .xcconfig).

Пример .xcconfig для Dev:

c

Пример Info_Dev.plist:

xml

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

Для удобства работы с asset'ами иконок можно использовать отдельные Asset Catalogs для каждой цели или конфигурации, либо назвать наборы иконок уникально (AppIconDev, AppIconStaging, AppIconProd) и указывать соответствующее имя в Info.plist.