Установка логического свойства в Info.plist из пользовательской настройки - PullRequest
33 голосов
/ 02 декабря 2009

Просто установить свойство в файле Info.plist из пользовательской настройки, вы просто используете $ {YOUR_SETTING_NAME} в качестве значения. Однако возможно ли это сделать для булева свойства? Структура в файле plist для логического значения:

<key>NSAppleScriptEnabled</key>
<false/>

Непонятно, как использовать пользовательские настройки здесь.

Ответы [ 3 ]

13 голосов
/ 02 декабря 2009

Я не уверен, как сделать то, что вы просите, но я уверен, что для этого конкретного ключа (NSAppleScriptEnabled) вы также можете использовать строки «YES» и «NO», и это будет работать.

5 голосов
/ 07 декабря 2016

plist файлы, содержащие логические значения внутри тегов, больше не действительны.

Это решение работает:

Добавьте новую фазу запуска сценария запуска к своей цели. Вставьте это:

if [ ${CONFIGURATION} = "Release" ]; then
/usr/libexec/PlistBuddy -c "Set :UIFileSharingEnabled NO" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
fi

Таким образом, в моей конфигурации я устанавливаю UIFileSharingEnabled на YES в моем plist как значение по умолчанию, и когда я собираюсь для Release, происходит вышеуказанный шаг и устанавливает его в false.

0 голосов
/ 02 декабря 2009

Что вы подразумеваете под "пользовательскими настройками" ...

Если пользователь, о котором вы говорите, это вы (другими словами, разработчик приложения), то вы можете просто поместить туда все нужные вам ключи, как и любой другой список в вашем проекте Xcode.

Если пользователь, о котором вы говорите, является конечным пользователем вашего приложения, не пытайтесь сохранить его настройки в вашем Info.plist. Это часть приложения. Хотя иногда приложение может изменить свой собственный информационный список на Mac, это не так, в зависимости от того, как приложение было установлено. На iPhone это невозможно, так как приложение доступно только для чтения. В любом случае изменение вашего Info.plist сделает недействительным любое подписанное вами приложение.

Если вы хотите изменить настройки конечного пользователя, используйте что-нибудь NSUserDefaults.

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