web-dev-qa-db-ja.com

デフォルトを使用してMacのコマンドラインからPlistを変更する

デフォルトを使用してコマンドラインからPlistファイルを変更する方法を知っている人はいますか?現在、URL types配列の下に2つの辞書があります。別のものを追加する必要があります。

enter image description here

私が試したすべてのコマンドは、辞書全体を置き換えるか、編集する代わりにURL typesという新しい配列を作成しました。デフォルト(コンソールMacアプリ)およびnotPlistBuddyでこれを行う方法についてのアイデアはありますか?

テキストエディタで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);}'

16
Lri

上記のLauriの答えが示すように、XMLプロパティリストはテキストエディタで直接表示できます。

バイナリプロパティリスト(Apple独自の出荷アプリケーションの多くにあります)は、最初にXMLプロパティリスト形式に変換する必要があります。

どちらの方向でも、plutilを使用してこれを行うことができます。ただし、プロパティリストはその場で変更されるため、最初にプロパティリストのコピーを作成してください。

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

そしてそれをバイナリに戻すには:

plutil -convert binary1 XML-property-list-to-convert.plist
22
ctpenrose
7
Kevin Suttle

使用 -array-add値タイプ:

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