ElectronのMacの手動公証

署名はローカルで行うのでまず失敗することはない。
問題はAppleで、公証のレスポンスがあまりに遅すぎることが多い。
稀に10〜30分で完了することもあるが、ほぼほぼ、1〜3日かかる。
散々待った挙句、Rejected だったり Invalid だと笑えない。
こんなものに付き合ってたら時間を浪費するだけだ。
デベロッパーのサポートもとにかく何もしない感じで全く役に立たない。
Windowsのアプリに比べてMacのアプリが極端に少ない意味がよくわかる。
ということで、署名付きの .app ができたら、一気に20〜30個くらい手動で公証に送っておき、後でどれか一つでも成功してたらチケットが発行されるので、Stapleすればいい。
という考えに辿り着いた。
調べたところ、1日のレート制限は75回のようだ。
70回くらい送ってもいいが、最初は20個とかで様子を見てみる。
公証の流れ
.appに署名がついているか確認
まずはBuildした後に、.appに署名がきちんとついているか確認
zipを手動で作成
.app から zip を手動で作成
手動で公証に送信
--wait オプションを付けると、そのまま待機。待っている間に公証に通れば、自動でdmg生成までいける。
途中でやめたい場合は、control + C もしくは、ターミナルを閉じる。
その場合、Appleのサーバーでは公証手続きが続行されている。
一度に20個送る場合
for i in {1..20}; do
xcrun notarytool submit APP_NAME.zip --apple-id "$APPLE_ID" --password "$APPLE_APP_SPECIFIC_PASSWORD" --team-id "$APPLE_TEAM_ID" &
done
wait
wait をつけると、送信完了の確認までできる。
省略すると、即完了。
そのままPCも閉じて暫く放置。
ログを確認
時々、ログを確認する。
40行だけ見る。
全部見たい場合は、
詳細を確認
失敗したやつは失敗した理由を見るためにID指定で詳細を確認
Stapleする
時々ログを確認し、どれか一つでも成功してたら後で、手動でStapleする。cd
.appのあるディレクトリに移動
Staple
.dmgファイルを作成
create-dmgを使って.dmgファイルを作成する。
create-dmg \
--volname "APP_NAME" \
--window-size 600 400 \
--icon-size 100 \
--icon "APP_NAME.app" 150 190 \
--app-drop-link 450 185 \
APP_NAME.dmg \
APP_NAME.app
確認
公証はzip圧縮して送信し、.appに対して行われる。
.dmgに公証はできない。
https://developer.apple.com/jp/
https://appstoreconnect.apple.com/