RubyCocoa 今日のコミット 2013-10-13
- configで--sdkrootしないときextconf.rbでエラーになるのを修正。 (r2435)
- インストーラ(.pkg)の作成にproductbuildコマンドも使えるように。 (r2436, r2437, r2438)
テストは流してたんだけど、そろそろ10.9でもパッケージつくってみるかなとGMで作業しようとしたところ、Xcodeのリリースノートに
DEPRECATED: Package Maker app.と書いてあることに気付いてしまった。ちょっと前から別インストールする必要あったりと、そういう予感はあったけれど、とうとう新しいツールに移行しなくちゃなのか。
Use the productbuild command to create installer packages
productbuild(1)のmanを見てもいまいち。この手のApple独自ツールはmanのEXAMPLESに詳しい例が書いてあって、これもそうなんだけど読んでてもぴんとこない。
検索してみたら、「pkgbuildとproductbuildでMacのインストーラーを作ろう」というページが見つかった。
- pkgbuildで.pkgを生成
- productbuildでxmlを生成、調整
- productbuildで最終的な.pkgを生成
という手順らしい。助かります。
参考にいろいろ試してみた感じ、こんなとこ。
- Appleのbundle(アプリなど)を単体でパッケージングするならproductbuildだけで作れる。(今回は.framework以外のファイルもあるのでダメ)
- productbuildに--productで渡すplistでインストール環境の制約を指定できる。
- OSのバージョン
- 必要なライブラリ・アプリ?(bundle形式で提供されているものに限る)
- ReadMe・ライセンス表示、インストール先の変更の可否などは--distributionで渡すxml(productbuild --synthesizeで生成)で指示する。詳しくはAppleのDistribution XML Referenceを参照のこと。
インストールするファイルの権限調整がいらなくなったのが地味にないす。PackageMakerのときはファイル用意してからchownかけたりしてた。
Snow Leopard (Xcode 3.2.6)でもproductbuildやpkgbuildは使えるので、次のリリースしたらPackageMakerのコードは消しちゃっていいかな。