何もしてないのに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が再び成功するようになった。