Подтвердить что ты не робот

Установка булевого свойства в Info.plist из пользовательской настройки

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

Файлы plist, содержащие booleans внутри тегов, уже недействительны.

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

Добавьте новую рабочую фазу Run Script в свою цель. Вставьте это:

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

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

Ответ 3

Что вы подразумеваете под "User Defined Setting"...

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

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

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