何もしてないのにAppleのNotarizationがCIの中で失敗するようになった

結論、何もしてないわけではなかった (Apple IDのパスワード変更が原因だった)。

macOS 10.15以降、基本的に配布するアプリはnotarizeされている必要がある。

Beginning in macOS 10.15, all software built after June 1, 2019, and distributed with Developer ID must be notarized.

https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution

普段自分はGitHub Actions中でgonを使ってnotarizationをやってるが、ある日 "The auth server returned a bad status code." というエラーでCIが失敗した。

Run gon -log-level=debug -log-json ./gon.json
==> 🍎  Notarizing...
    Path: ./build/src/Os251_artefacts/Release/installer/build/signed/OS-251.pkg
    Submitting file for notarization...
{"@level":"info","@message":"submitting file for notarization","@module":"notarize","@timestamp":"2022-07-29T23:35:06.644900Z","command_args":["xcrun","altool","--notarize-app","--primary-bundle-id","onsenaudio.OS-251","-u","***","-p","@env:AC_PASSWORD","-f","./build/src/Os251_artefacts/Release/installer/build/signed/OS-251.pkg","--output-format","xml"],"command_path":"/usr/bin/xcrun","file":"./build/src/Os251_artefacts/Release/installer/build/signed/OS-251.pkg"}
{"@level":"info","@message":"notarization submission complete","@module":"notarize","@timestamp":"2022-07-29T23:35:09.103667Z","err":"exit status 1","output":"\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003c!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\"\u003e\n\u003cplist version=\"1.0\"\u003e\n\u003cdict\u003e\n\t\u003ckey\u003eos-version\u003c/key\u003e\n\t\u003cstring\u003e11.6.8\u003c/string\u003e\n\t\u003ckey\u003eproduct-errors\u003c/key\u003e\n\t\u003carray\u003e\n\t\t\u003cdict\u003e\n\t\t\t\u003ckey\u003ecode\u003c/key\u003e\n\t\t\t\u003cinteger\u003e-1011\u003c/integer\u003e\n\t\t\t\u003ckey\u003emessage\u003c/key\u003e\n\t\t\t\u003cstring\u003eUnable to upload your app for notarization.\u003c/string\u003e\n\t\t\t\u003ckey\u003euserInfo\u003c/key\u003e\n\t\t\t\u003cdict\u003e\n\t\t\t\t\u003ckey\u003eNSLocalizedDescription\u003c/key\u003e\n\t\t\t\t\u003cstring\u003eUnable to upload your app for notarization.\u003c/string\u003e\n\t\t\t\t\u003ckey\u003eNSLocalizedFailureReason\u003c/key\u003e\n\t\t\t\t\u003cstring\u003eFailed to get authorization for username '***' and password. (\n    \"Error Domain=NSCocoaErrorDomain Code=0 \\\"Status code: 0\\\" UserInfo={NSLocalizedDescription=Status code: 0, NSLocalizedFailureReason=The auth server returned a bad status code.}\"\n)\u003c/string\u003e\n\t\t\t\u003c/dict\u003e\n\t\t\u003c/dict\u003e\n\t\u003c/array\u003e\n\t\u003ckey\u003etool-path\u003c/key\u003e\n\t\u003cstring\u003e/Applications/Xcode_13.2.1.app/Contents/SharedFrameworks/ContentDeliveryServices.framework/Versions/A/Frameworks/AppStoreService.framework\u003c/string\u003e\n\t\u003ckey\u003etool-version\u003c/key\u003e\n\t\u003cstring\u003e4.071.1221\u003c/string\u003e\n\u003c/dict\u003e\n\u003c/plist\u003e\n\n\n"}
    Error notarizing

❗️ Error notarizing:

1 error occurred:
    * 1 error occurred:
    * Unable to upload your app for notarization. (-1011)

調べてみると、Appleのページ

主要 Apple ID のパスワードを変更またはリセットすると、アカウントを保護するため、App 用パスワードもすべて自動的に消去されます。引き続き使いたい App がある場合は、その App 用のパスワードをあらためて作成する必要があります。

と書いてる。言われた通りに同ページに書かれたApp用のパスワードを作成しなおして、それをGitHub Actionsの設定に反映(gonの文脈ではAC_PASSWORDの値を更新)したら、CIが再び成功するようになった。