アップル公証対応その2(.ZIPの場合)
その1はこちら。今回はパッケージをpkg形式でなく.zip形式にするためのメモです。
圧縮元の配布フォルダを作る
署名を済ませたアプリおよびドキュメント類を入れた圧縮元の配布用フォルダを作ります。
なお、テスト時に.appファイルのみを入れた状態でZIPパッケージ化したところダウンロード時に.appの中身だけが展開されてしまってアプリとして実行できなくなる現象が見られたのですが、別ファイルを含めてパッケージ化することで回避できたようです。まあこれは圧縮方法の設定がどうこうというよりはブラウザがダウンロード後のファイルをどう扱うかという話のように思います。
ZIPパッケージを作る
ターミナルで以下のコマンドを使ってリソースフォークごとZIPパッケージ化します。アプリ本体の署名を済ませておくのはpkg形式と同様です。
1 |
ditto -ck --rsrc --sequesterRsrc "圧縮元フォルダのファイルパス" "圧縮後ZIPファイルのファイルパス" |
ZIPパッケージに署名を行う
ZIPパッケージに署名を行います。キーチェーンアクセスにDeveloper IDが登録されているのが前提です。
1 |
codesign --force --verify --verbose --sign "Developer ID Installer: 支給されたDeveloper ID" "圧縮後ZIPファイルのファイルパス" --deep --options runtime --entitlements entitlements.plist --timestamp |
アップルの公証サーバにアップロードして登録
以下のコマンドを実行してアップルの公証サーバに登録します。pkg形式と同じです。App用パスワードについては前回記事を参照のこと。
1 |
xcrun altool --notarize-app --primary-bundle-id "xxx.xxxxxx.xxxxxxxxxxxxxxxxxx(id識別用リバースドメイン)" --username "AppleIDの登録名(メールアドレス)" --password 発行されたApp用パスワード --file "署名後のパッケージ.zip" |
公証が通ったかの確認はpkg形式の場合と同様です。メールで通知が来るほかターミナルから確認することもできます。念のためにコマンドは以下。
1 |
xcrun altool --notarization-info xxxxxxx--xxxx-xxxx-xxxx-xxxxxxxxxxxx(ステータス照合用UUID) --username "AppleIDの登録名(メールアドレス)" --password 発行されたApp用パスワード |
なお、アップルは公証の仕組みを切り替える予定のようで、現在altoolで公証を行うと新コマンドのnotarytoolへの移行案内メッセージが出ます。2023年秋には完全切り替えの予定の模様です。流れが速くてなかなかついて行くのが大変です。
(2022.11.10)
タグ: mac, Notarization, 公証