Зависимое от конфигурации значение в файле Info.plist

У меня есть три конфигурации в моем проекте iOS:

  1. Отлаживать
  2. Для этого случая
  3. Выпуск

Теперь я хочу изменить имя приложения следующим образом:

  1. MyAppDebug
  2. MyAppAdhoc
  3. MyApp (обратите внимание, что у этого приложения нет суффикса)

Есть ли способ, которым я могу легко добиться этого в Xcode с помощью некоторого типа "компилятор-если-иначе-макро-вещь"?


person Besi    schedule 23.01.2012    source источник
comment
возможный дубликат трех немного разных приложений из одной кодовой базы   -  person Besi    schedule 23.01.2012


Ответы (3)


Изменение отображаемого имени приложения для соответствующих конфигураций: один из способов добиться этого — использовать тот же файл info plist, который у вас есть.

Часть 1: создание определяемой пользователем переменной

  1. Нажмите на целевой файл проекта.
  2. Затем в правом нижнем углу найдите кнопку «+» «Добавить настройку сборки».
  3. Нажмите эту кнопку «Добавить настройку сборки» и выберите «Добавить пользовательскую настройку», введите имя для новой настройки, например: «BUNDLE_DISPLAY_NAME».
  4. Разверните этот новый параметр, чтобы увидеть конфигурации под ним. Дайте желаемое имя, которое будет отображаться для каждой конфигурации. Например: Отладка -> MyAppDebug

Часть 2: используйте

  1. Выберите файл appname-info.plist.
  2. Найдите ключ «Отображаемое имя пакета», и его значение должно быть этой новой определяемой пользователем переменной ${BUNDLE_DISPLAY_NAME}.

Затем для соответствующей конфигурации он выберет имя из переменной BUNDLE_DISPLAY_NAME в настройках сборки.

person Youraj    schedule 09.08.2013
comment
Это отличный ответ. Это очень ценная информация для тех, кто поддерживает две версии приложения (выпуск/производство). - person polterfest; 20.01.2015
comment
это лучший способ сделать это. - person Jon; 23.01.2015

Также у вас может быть два разных информационных списка для разных конфигураций, которые представляют собой разные файлы, а затем в разделе Build Settings > Info.plist File вы можете изменить его. XCode 10.1

person mert    schedule 07.02.2019

Конечно. Сначала вам нужно создать отдельный файл Info.plist для каждой конфигурации. Затем в настройках сборки вашего проекта найдите строку, в которой находится Info.plist, разверните эту строку и выберите отдельный файл Info.plist для каждой имеющейся у вас конфигурации. Затем вы можете ввести желаемое имя в соответствующее поле в каждом файле Info.plist. Вот и все :)

person gavrix    schedule 23.01.2012
comment
Можно ли это сделать, но не нужно повторять все значения для каждого plist? Или, возможно, возможно, чтобы значение ключа в основном plist динамически совпадало со значением из plist конфигурации? - person farski; 06.04.2012
comment
Да, создайте пользовательский параметр сборки, а затем на основе конфигурации, для которой вы создаете, используйте это значение. - person ganders; 18.03.2014