概要
-
altool
はまもなく廃止となるので、notarytool
に移行します。
Apple、Xcode 13以前のGUIやaltoolによるMacアプリの公証を2023年秋までに終了し、今後はXcode 14以上のGUIやnotarytoolへ移行
AppleがXcode 13以前のGUIやaltoolによるMacアプリの公証を2023年秋で終了し、今後はXcode 14以上のGUIやnotarytoolへ移行するように発表しています。詳細は以下から。
参考
- 公式ドキュメント
- Apple、App Store外で公開するMacアプリのマルウェアチェックを行う公証サービスをより速くシンプルに行える「notarytool」コマンドを提供。
- コマンドの概要と使い方の参考に。
- WWDCの情報
- 過去の記事は
altool
を使っていますがnotarytool
に置き換える必要がありますね。
手順
キーチェーンへ情報の登録
- アプリパスワード以外に、AppleIDやTeamIDをまとめてキーチェーンに登録できる。
-
store-credentials
で指定した文字列を、公証の際に使用する。 - その他の情報が何を指すのか分からない場合は、Xcode13で新しくシンプルになったmacOSアプリの公証(Notarization)を行うが参考になる。
xcrun notarytool store-credentials "AC_PASSWORD" \
--apple-id "xxx@gmail.com" \
--team-id "<team_id>" \
--password "xxxx-xxxx-xxxx-xxxx"
公証対象のzip化
- dittoにより、フルパスを指定しても変にフォルダ構造を保ったままzip化されないみたい。
- 【Bash】「ditto」 - ディレクトリをバックアップする
-c 指定したパスに書庫ファイルを作成する。
-k ZIPで圧縮する。
# Create a ZIP archive suitable for notarization.
/usr/bin/ditto -c -k --keepParent "$APP_PATH" "$ZIP_PATH"
/usr/bin/ditto -c -k --keepParent /Users/hogeuser/Downloads/tmp/MyApp.app /Users/hogeuser/Downloads/tmp/MyApp.app.zip
公証
xcrun notarytool submit MyApp.app.zip \
--keychain-profile "AC_PASSWORD" \
--wait
Conducting pre-submission checks for MyApp.app.zip and initiating connection to the Apple notary service...
Submission ID received
id: f2c5affb-5614-44a7-8050-de80287552e1
Successfully uploaded file
id: f2c5affb-5614-44a7-8050-de80287552e1
path: /Users/hogeuser/Downloads/tmp/MyApp.app.zip
Waiting for processing to complete.
Current status: Accepted........
Processing complete
id: f2c5affb-5614-44a7-8050-de80287552e1
status: Accepted
公証結果のログの確認
xcrun notarytool log f2c5affb-5614-44a7-8050-de80287552e1 --keychain-profile "AC_PASSWORD" developer_log.json
Successfully downloaded submission log
id: f2c5affb-5614-44a7-8050-de80287552e1
location: /Users/hogeuser/Downloads/tmp/developer_log.json
open developer_log.json
- 下記の通りワーニングがある可能性があるため、成功してもログを確認することが推奨されている。
Customizing the notarization workflow
Always check the log file, even if notarization succeeds, because it might contain warnings that you can fix prior to your next submission.
Staple処理
- オフラインのときのためのもの。(ここは従来通り。)
- ついでに公証処理がうまくいっていることが確認できる(公証がダメだった場合にエラーとなるため)
xcrun stapler staple MyApp.app
Processing: /Users/hogeuser/Downloads/tmp/MyApp.app
Processing: /Users/hogeuser/Downloads/tmp/MyApp.app
The staple and validate action worked!