有谁知道如何使用 defaults 命令行修改Plist文件吗?目前在 URL类型
数组下有两个字典; 我需要添加另一个。
我尝试的每个命令都要么替换整个字典,要么创建一个名为 URL类型
的新数组,而不是编辑它。任何想法如何在defaults(控制台Mac应用程序)中完成,而不是PlistBuddy?
有谁知道如何使用 defaults 命令行修改Plist文件吗?目前在 URL类型
数组下有两个字典; 我需要添加另一个。
我尝试的每个命令都要么替换整个字典,要么创建一个名为 URL类型
的新数组,而不是编辑它。任何想法如何在defaults(控制台Mac应用程序)中完成,而不是PlistBuddy?
正如Lauri的回答所建议的那样,XML属性列表可以直接在文本编辑器中查看。
许多苹果自带的应用程序中发现的二进制属性列表需要首先转换为XML属性列表格式。
可以使用plutil在任一方向上执行此操作。要注意的是,属性列表会被就地修改,因此您可能希望首先复制属性列表。
plutil -convert xml1 binary-property-list-to-convert.plist
并将其转换回二进制:
plutil -convert binary1 XML-property-list-to-convert.plist
打开文本编辑器中的 Info.plist,以查看实际标识符。
defaults write Absolute/Path/to/Info.plist CFBundleURLTypes -array-add '<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLName</key>
<string>Mac App Store URL</string>
<key>CFBundleURLSchemes</key>
<array>
<string>macappstore</string>
</array>
</dict>'
pbpaste | pl
将 XML 转换为旧格式。
defaults write Info.plist CFBundleURLTypes -array-add '{CFBundleTypeRole=Viewer; FBundleURLName="Mac App Store URL";CFBundleURLSchemes=(macappstore);}'
~/Library/Preferences/Info.plist
文件。请注意,绝对路径是指从文件系统根目录开始的完整路径。 - derFunk使用-array-add
值类型:
defaults write /path/to/plist/file "URL Types" -array-add '{"URL Identifier" = "com.myapp.2"; "URL Schemes" = { "two"; }; }'
defaults
不再支持文件路径。在man中,它说:“警告:defaults命令将在即将发布的主要版本中更改,仅操作偏好设置域。通用plist操作实用程序将被合并到另一个命令行程序中。” - ThomasW
$ defaults write domain key 'value'
,其中domain
是应用程序相关的。https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/defaults.1.html - trojanfoe