修改从命令行的plist使用默认值的Mac(modifying a Plist from comma

2019-08-03 15:07发布

是否任何一个知道如何修改命令行使用默认值 plist文件中? 目前,有下两个库URL types数组; 我需要添加另一种。

我已经尝试过的每一个命令要么更换整个字典,或创建一个新的阵列称为URL types而不是编辑它。 这如何能在默认设置(控制台Mac应用程序),而不是 PlistBuddy做任何想法?

Answer 1:

打开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 pbpaste | pl转换XML旧风格的格式。

defaults write Info.plist CFBundleURLTypes -array-add '{CFBundleTypeRole=Viewer; FBundleURLName="Mac App Store URL";CFBundleURLSchemes=(macappstore);}'



Answer 2:

XML属性列表可以在文本编辑器直接如上劳里的回答暗示观看。

二进制属性列表(在许多的苹果自己的应用程序并将其找到)需要先转换为XML属性列表格式。

plutil可用于执行此操作,在任一方向。 小心,虽然作为财产清单中的地方被修改,所以你让希望进行属性列表的副本第一。

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

并且将其转换为二进制:

plutil -convert binary1 XML-property-list-to-convert.plist


Answer 3:

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



Answer 4:

使用-array-add值类型:

defaults write /path/to/plist/file "URL Types" -array-add '{"URL Identifier" = "com.myapp.2"; "URL Schemes" = { "two"; }; }'


文章来源: modifying a Plist from command line on Mac using Defaults