Как я могу настроить свой проект iPhone, чтобы использовать значок отдельного приложения для бета-версий - PullRequest
5 голосов
/ 23 февраля 2010

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

Я не был уверен, стоит ли добавлять скрипт сборки, чтобы изменить info.plist и изменить указанную там иконку приложения. Для этого, я думаю, мне нужно было бы условно проверить тип сборки (DEBUG / RELEASE / DISTRIBUTION и т. Д.) И записать соответствующее значение в файл plist.

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

Если бы кто-то делал такую ​​процедуру раньше, любые советы и идеи о том, как лучше всего это сделать, были бы очень благодарны.

Ответы [ 3 ]

12 голосов
/ 23 февраля 2010

Устаревший: По состоянию на сентябрь 2017 года мой ответ, вероятно, уже устарел. Пожалуйста, используйте последние руководства Apple для разработчиков, относящиеся к Каталогам активов . Каталоги активов - это новый способ указания ресурсов изображений / значков для вашего приложения.

Оригинальный ответ:

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

Вот как бы я это сделал:

  1. В настройках сборки проекта создайте новую пользовательскую переменную с именем ICON_FILE (для «Все конфигурации»)
  2. Установить значение переменной равным «Icon.png» (для «Все конфигурации»)
  3. Создайте новую конфигурацию сборки под названием "Beta".
  4. Установите значение переменной ICON_FILE равным «Icon-beta.png» для конфигурации «Beta».

(при этом все конфигурации будут иметь значение "Icon.png", кроме бета-конфигурации)

В Info.plist установить значение атрибута «Файл значка» равным ${ICON_FILE}. Это заставит info.plist динамически получать имя файла из переменной, которую вы определили ранее.

В ресурсы вашего приложения включите значок бета-версии с именем «Icon-beta.png» в дополнение к «Icon.png», который у вас уже есть.

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

Надеюсь, это поможет!

7 голосов
/ 30 августа 2015

Каталоги активов можно использовать без создания другой цели.

Вот шаги, которые я использую:

1 - создание двух (или более) значков приложений, установленных в images.xcassets

appIcon1 appIcon2

2 - Создать другую конфигурацию из настроек проекта

demo configuration

3 - Перейдите в Target -> Build Settings и найдите значок приложения. Вы увидите Имя набора значков приложения каталога активов в разделе Компилятор каталога активов - Параметры. Измените имя каталога активов, которое будет использоваться в новой конфигурации.

app icon set name for configurations

4 - Сборка для разных конфигураций.

simulator screen shot

1 голос
/ 26 июня 2014

Принятый ответ не работает для xcassets. Итак, если вы уже начали использовать каталог xcassets, выполните следующие действия:

Вам необходимо создать 2 разные цели вашего приложения. Для этого:

  1. Щелкните правой кнопкой мыши по вашей цели. -> Нажмите Duplicate (или Cmd + D )
  2. Установить имя новой цели, такой как MyApp-beta

Создать отдельную иконку:

  1. Перейдите в каталог xcasset.
  2. Щелкните правой кнопкой мыши столбец со списком изображений -> щелкните New App Icon
  3. Назовите его как icon-beta, добавьте сюда свои бета-иконки
  4. Нажмите на свою бета-цель
  5. Перейти на вкладку General -> App Icons -> выбрать свой актив icon-beta

Вот оно. Теперь вы можете создать свое бета-приложение!

Еще одно преимущество этого метода по сравнению с описанным в принятом ответе - это то, что вы можете установить обе версии приложения одновременно. (для этого нужно установить разные Bundle Identifier).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...