通过用户定义的设置在 Info.plist 中设置布尔属性

问题描述 投票:0回答:4

通过用户定义的设置在 Info.plist 文件中设置属性非常简单,只需使用 ${YOUR_SETTING_NAME} 作为值即可。但是,是否可以对布尔属性执行此操作?布尔值的 plist 文件中的结构是:

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

这里不清楚如何使用用户定义的设置。

iphone xcode macos
4个回答
17
投票

我不确定如何执行您所要求的操作,但我非常确定对于这个特定的键(NSAppleScriptEnabled),您还可以使用字符串“YES”和“NO”并且它会起作用。


11
投票

标签内包含布尔值的 plist 文件不再有效。

此解决方案有效:

向您的目标添加新的运行脚本构建阶段。放入这个:

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

因此,在我的配置中,我在 plist 中将 UIFileSharingEnabled 设置为 YES 作为默认值,当我为 Release 构建时,就会发生上述步骤并将其设置为 false。


0
投票

就我而言,我必须使用

Add
操作,以便我可以定义我想要的值是
bool
:

/usr/libexec/PlistBuddy -c "Add :UIFileSharingEnabled bool ${FILE_SHARING_ENABLED}" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"

就我而言

FILE_SHARING_ENABLED
来自
xcconfig
文件。


-6
投票

“用户定义设置”是什么意思...

如果您正在谈论的用户是您(换句话说,应用程序的开发人员),那么您可以将您想要的任何键放在那里,就像 Xcode 项目中的任何其他 plist 一样。

如果您谈论的用户是您应用程序的最终用户,请不要尝试将他们的设置保存在 Info.plist 中。它是应用程序的一部分。虽然应用程序有时可以在 Mac 上更改其自己的信息 plist,但通常不能,具体取决于应用程序的安装方式。在 iPhone 上这是不可能的,因为该应用程序是只读的。无论哪种情况,更改您的 Info.plist 都会使您所做的任何应用程序签名无效。

如果您想更改最终用户设置,请使用 NSUserDefaults。

© www.soinside.com 2019 - 2024. All rights reserved.