[Mac] Plistの値をコマンドで変更する (PlistBuddy)

先日に引き続きPlistネタです。 シェルスクリプトでパッケージの情報を変更したり、証明書を変更したい時にコマンドでPlistの値を変更できると色々便利です。しかしながら、階層になっているPlistの値を変更するが少し難しかったので紹介します。 使うコマンドはPlistBuddyです。 ## 方法 以下のようなPlistがあったとして... ```xml `gutter:false; <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>ArrayKey</key> <array> <dict> <key>foobar</key> <string>foobarValue</string> <key>hogehoge</key> <string>hogehogeValue</string> </dict> </array> <key>Rin</key> <string>Aki</string> </dict> </plist> ``` ArrayKey/hogehogeの値を変更したい時には以下のようにします。 ```bash `gutter:false; /usr/libexec/PlistBuddy -c "Set ArrayKey:0:hogehoge ChangedValue" /tmp/Info.plist ``` ポイントは、階層になっているKeyは:で繋げます。 もちろんバイナリ形式のPlistもOK

0 件のコメント :

コメントを投稿