feed

2015年05月27日, 編集履歴

Developer IDで署名したインストーラパッケージを作る

 OS XアプリケーションをDeveloper IDで署名し、インストーラパッケージもDeveloper IDで署名する。Developer ID Application/Installer証明書は取得済みであると仮定する。

アプリケーションをDeveloper ID Application証明書で署名、ビルド、エクスポートする

 XcodeにてTargetの「Signing」で「Developer ID」を選択する。アプリケーションを「Archive」してOrgnaizerウィンドウから「Export」する。エクスポートのダイアログでは「Export a Developer ID-signed Application」を選択する。

アプリケーションの署名を検証する

 以下のコマンドを実行して正しく署名されているかを検証する。

$ spctl -a -vvvv MyApp.app

 出力でacceptedsource=Developer ID Applicationと出ていればOK。以下のような感じ。

MyApp.app: accepted
source=Developer ID
origin=Developer ID Application: xxxxxxx (xxxxxx)

 xxxxxxの部分はDeveloper ID証明書の名前などが入る。

インストーラパッケージを作成する

 以下のコマンドを実行してインストーラパッケージを作成する。

$ productbuild --component MyApp.app /path/to/install_dir MyInstaller.pkg

 MyApp.appはインストールするアプリケーションのパス、/path/to/install_dirはインストール先のパス(通常は/Applicationsを指定することが多いであろう)、MyInstaller.pkgがインストーラパッケージ出力先のパス。上記のコマンドは一番シンプルなインストーラパッケージの作成例である。もっと凝ったインストーラパッケージを作成する方法もある。

インストーラパッケージをDeveloper ID Installerで署名する

 以下のコマンドを実行してインストーラパッケージをDeveloper ID Installer証明書で署名する。

$ productsign --sign "Developer ID Installer: xxxxx" MyInstaller.pkg Signed_MyInstaller.pkg

 xxxxxにはDeveloper ID Installer証明書の名前が入る。

インストーラパッケージの署名を検証する

 以下のコマンドを実行して正しく署名されているか検証する。

$ spctl -a -vvvv -t install Signed_MyInstaller.pkg

 Developer ID Applicationの検証のときとは-t installの部分が違っていることに注意。-tオプションで検証対象のタイプを指定する(未指定のときは-t executeが指定されたのと同じ。-t executeがアプリケーションの検証)。

 出力にacceptedDeveloper ID Installerと出ていればOK。以下のような感じ。

Signed_MyInstaller.pkg: accepted
source=Developer ID
origin=Developer ID Installer: xxxxx