まとめ
BundleIsRelocatable = true
となっているcomponent plistを使ってインストーラを作成すると、インストール先にoverwriteすべきappがない場合に新規にアプリがインストールされないみたい。
はまった…orz
すでにインストールした.appをコピーして、同じappをインストールするインストーラを作成しようとすると、pkgbuild --analyze
で作ったplistにはBundleIsRelocatable = true
が書き出される様子。
英語つらいけど、本家のマニュアル読みましょう…
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/pkgbuild.1.html
以下、plistのプロパティ一覧を引用
Key Description
RootRelativeBundlePath Path to bundle relative to the destination root (string)
BundleIsRelocatable Install bundle over previous version if moved by user? (bool)
BundleIsVersionChecked Don't install bundle if newer version on disk? (bool)
BundleHasStrictIdentifier Require identical bundle identifiers at install path? (bool)
BundleOverwriteAction How to treat existing on-disk version of bundle (string)
BundlePreInstallScriptPath Relative path to bundle-specific preinstall script
BundlePostInstallScriptPath Relative path to bundle-specific postinstall script
ChildBundles Bundles under this bundle (array of dictionaries)