先日に引き続き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 件のコメント :
コメントを投稿