macOS(OS X)アプリのコードサイン
公開日 : 2016-09-27 15:25:52
1年半ぶりくらいなので、結構忘れている。メモ大切。
- キーチェーンアクセス.appを起動 > キーチェーンアクセスメニュー > 証明書アシスタント > 認証局に証明書を要求 (証明書は「ディスクに保存」)
- Apple の Developerサイトから「Account」へ進む
- 「Certificates, Identifiers & Profiles」(真ん中のアイコン) へ進む
- 「Mac App Distribution」 を選択
- 1.で作成したファイルをアップロードすると証明書が生成されるので、ダウンロードして保存
- 続いてMac Installer Distribution を選択し、5.を繰り返す
- ダウンロードした証明書を開いてキーチェーンアクセスに登録する
- キーチェーンアクセスの画面で名前を確認しておく(例「3rd Party Mac Developer Installer: Alfasado Inc. (XXXXXXXXXX)」「3rd Party Mac Developer Installer: Alfasado Inc. (XXXXXXXXXX)」) 前者はアプリに、後者はインストールパッケージに付与するもの
productname.entitlementsファイル(名前はなんでも良い)を用意する。最低限「com.apple.security.app-sandbox」に「true」の指定が必要。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
ターミナルでcodesignコマンドでアプリに署名を付け、productbuildコマンドでインストールパッケージに署名を付ける。
sudo codesign -f -v -s "3rd Party Mac Developer Application: Alfasado Inc. (XXXXXXXXXX)" --entitlement /path/to/productname.entitlements "/Applications/ProductName.app"
sudo productbuild --component /Applications/ProductName.app --sign "3rd Party Mac Developer Installer: Alfasado Inc. (XXXXXXXXXX)" --product "/Applications/ProductName.app/Contents/info.plist" ProductName.pkg
最後にApplication LoaderでAppleへの登録を行う。