Как заменить системные настройки пользовательскими настройками в файле info.plist?

В info.plist есть системная настройка: Просмотр внешнего вида строки состояния на основе контроллера.

введите здесь описание изображения

Это логическая опция, выделенная серым цветом.

Но в моем проекте я использую много целей, и мне нужно определить этот параметр для каждой цели. Итак, я определил User Defined Setting следующим образом:

введите здесь описание изображения

Но когда я пытаюсь заменить ON на $(CUSTOM_STATUS_BAR_APPEARANCE_ENABLED), это не работает, потому что это логический тип. Если я принудительно изменю это свойство в файле plist следующим образом:

<key>UIViewControllerBasedStatusBarAppearance</key>
<string>$(CUSTOM_STATUS_BAR_APPEARANCE_ENABLED)</string>

это все еще не работает. Почему? Как я могу сделать это без создания отдельных списков?


person Bartłomiej Semańczyk    schedule 06.03.2019    source источник


Ответы (1)


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

INFOPLIST="${PRODUCT_SETTINGS_PATH}"
/usr/libexec/PlistBuddy -c "Set :UIViewControllerBasedStatusBarAppearance NO" "${INFOPLIST}"

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

person Kamil Walas    schedule 06.03.2019