27

有谁知道如何使用默认值从命令行修改 Plist 文件?URL types目前数组下有两个字典;我需要添加另一个。

在此处输入图像描述

我尝试过的每个命令要么替换了整个字典,要么创建了一个名为URL types而不是编辑它的新数组。关于如何在默认设置(控制台 Mac 应用程序)而不是PlistBuddy 中完成此操作的任何想法?

4

4 回答 4

27

XML 属性列表可以直接在文本编辑器中查看,正如上面 Lauri 的回答所建议的那样。

二进制属性列表(在 Apple 自己的许多运输应用程序中都有)需要首先转换为 XML 属性列表格式。

plutil 可用于在任一方向执行此操作。不过要小心,因为属性列表已就地修改,因此您希望首先制作属性列表的副本。

plutil -convert xml1 binary-property-list-to-convert.plist

并将其转换回二进制:

plutil -convert binary1 XML-property-list-to-convert.plist
于 2013-10-31T17:19:49.673 回答
17

在文本编辑器中打开 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);}'

于 2012-12-06T15:03:20.803 回答
8

OSX 有 PlistBuddy,这让这变得简单多了。

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/PlistBuddy.8.html

另请参阅:https ://github.com/kevinSuttle/OSXDefaults/blob/master/REFERENCE.md

于 2013-12-06T18:28:53.337 回答
6

使用-array-add值类型:

defaults write /path/to/plist/file "URL Types" -array-add '{"URL Identifier" = "com.myapp.2"; "URL Schemes" = { "two"; }; }'
于 2012-12-06T14:50:42.197 回答