如何设置 plist 值

Posted

技术标签:

【中文标题】如何设置 plist 值【英文标题】:How do I set plist values 【发布时间】:2017-03-07 10:08:16 【问题描述】:

我正在尝试更改一些 Safari 设置并尝试为此使用 com.apple.Safari.plist。 这些是我需要更改的以下关键值

com.apple.Safari.ContentPageGroupIdentifier.WebKit2javascriptEnabled
WebKitJavaScriptEnabled
com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically
WebKitJavaScriptCanOpenWindowsAutomatically
com.apple.Safari.ContentPageGroupIdentifier.WebKit2PluginsEnabled
WebKitPluginsEnabled
WebKitJavaEnabled

我尝试使用

更改第一个
defaults write com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptEnabled -bool true

它没有改变值。我需要一些帮助来理解为什么以及如何纠正它。

我也想要一些关于如何访问这个值来改变字符串值的帮助

<key>ManagedPlugInPolicies</key>
<dict>
    <key>PlugInName</key>
    <dict>
        <key>PlugInDisallowPromptBeforeUseDialog</key>
        <true/>
        <key>PlugInFirstVisitPolicy</key>
        <string>PlugInPolicyAllowNoSecurityRestrictions</string>
    </dict>
</dict>

如何更改 PlugInFirstVisitPolicy 的值?我想把字符串改成别的。

除了默认写入之外,还有其他方法吗?我读过 plistbuddy 但不知道如何使用它。非常感谢任何帮助。谢谢。

注意:我有第一部分 我使用 PlistBuddy 来设置我想要的值

/usr/libexec/PlistBuddy -c "Set com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptEnabled true" ~/Library/Preferences/com.apple.Safari.plist

对于其他值,依此类推。 但我仍然不知道如何在问题的第二部分访问容器中的那个。请帮忙。

【问题讨论】:

【参考方案1】:

我得到了两个答案。 我使用 PlistBuddy 来更改 Plist 的值

更改我使用的任何 Plist 值

/usr/libexec/PlistBuddy -c "Set com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptEnabled true" ~/Library/Preferences/com.apple.Safari.plist

访问我使用的字典链

/usr/libexec/PlistBuddy -c "Set ManagedPlugInPolicies:PlugInName:PlugInFirstVisitPolicy PlugInPolicyAllowNoSecurityRestrictions" ~/Library/Preferences/com.apple.Safari.plist

最后一个是允许始终允许名为 PlugInName 的插件。

【讨论】:

以上是关于如何设置 plist 值的主要内容,如果未能解决你的问题,请参考以下文章

从 xxx.plist 获取值以在 Target 中构建设置

通过 plist 覆盖 NSUserDefaults 值

iOS 7设置plist保存更新[重复]

Obj-C,根据plist值设置UILabel的颜色?

如何在 plist 中添加预定义值?

如何根据构建方案更改 plist 中的值