PlistBuddyからplutilに乗り換え

iOSアプリ開発者にはお馴染みの.plist。
そして、それを編集するためのコマンド、PlistBuddy。

配布されたアプリのバージョン情報とビルド番号の組み合わせがユニークだと、 バグトラッキングや、チームメンバーとのコミュニケーションが簡単になるので、 アプリのビルド、配布を行う際に、PlistBuddyを以下のように使っていました。
(以下では、ビルド番号を100に更新している)

/usr/libexec/PlistBuddy  -c "Set:CFBundleVersion 100" Info.plist


ただ、こちらのコマンド、 El Capitanから削除されたらしく、見当たらないので、 plutilに乗り換えることになりました。 上記の例をplutilで書き換えると、こんな感じです。

/usr/bin/plutil -replace CFBundleVersion -string 100 Info.plist


入れ子にアクセスする場合はこのように、.1などindex指定でアクセスします。

/usr/bin/plutil -remove PreferenceSpecifiers.1 Settings.bundle/Root.plist


ただ、plutilはplistからのデータの取得が非常に苦手なので、 その場合は、defaultsコマンドを使うべきかなと思います。