有谁知道如何使用默认值从命令行修改 Plist 文件?URL types
目前数组下有两个字典;我需要添加另一个。
我尝试过的每个命令要么替换了整个字典,要么创建了一个名为URL types
而不是编辑它的新数组。关于如何在默认设置(控制台 Mac 应用程序)而不是PlistBuddy 中完成此操作的任何想法?
有谁知道如何使用默认值从命令行修改 Plist 文件?URL types
目前数组下有两个字典;我需要添加另一个。
我尝试过的每个命令要么替换了整个字典,要么创建了一个名为URL types
而不是编辑它的新数组。关于如何在默认设置(控制台 Mac 应用程序)而不是PlistBuddy 中完成此操作的任何想法?
XML 属性列表可以直接在文本编辑器中查看,正如上面 Lauri 的回答所建议的那样。
二进制属性列表(在 Apple 自己的许多运输应用程序中都有)需要首先转换为 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);}'
OSX 有 PlistBuddy,这让这变得简单多了。
另请参阅:https ://github.com/kevinSuttle/OSXDefaults/blob/master/REFERENCE.md
使用-array-add
值类型:
defaults write /path/to/plist/file "URL Types" -array-add '{"URL Identifier" = "com.myapp.2"; "URL Schemes" = { "two"; }; }'