Notarizationに失敗した場合、Appleから以下のタイトルのメールが届く。
Your Mac software was not notarized.
Organizerを使用してNotarizationを行なっている場合はそこで詳細を見ることができる。
コマンドを使用してNotarizationを行なっている場合はRequest Identifierを確認して、以下のコマンドを使用して詳細を取得する。
*Request Identifierはメールに記載されている。
$ xcrun altool --notarization-info <Request Identifier> -u <Apple ID>
実際の実行例
$ xcrun altool --notarization-info 17c4b36e-01ce-40c2-8050-430a04b4afdc -u xxx@yyy.com xxx@yyy.com's password: 2020-02-21 16:23:38.567 altool[51363:178092] No errors getting notarization info. RequestUUID: 17c4b36e-01ce-40c2-8050-430a04b4afdc Date: 2020-02-21 07:13:49 +0000 Status: invalid LogFileURL: https://osxapps-ssl.itunes.apple.com/itunes-assets/Enigma124/v4/b8/8e/62/b88e6296-4f0d-4882-13d7-229e2c633843/developer_log.json?accessKey=1582464218_5034071493456679014_w5aGMVsdLitsE0TN%2BNI11bGfW%2Bk8cBf11E7B4fLnMKWH8U6TSCuaVyo1a%2F7sNIJXGy4ouM%2FO%2FGH5t58tGtZBfPF5WC4cQnNGPw8Houd7YDNrs9yUOHxk3Naw659hy%2FYZpG8gche%2BMcBV0SozU%2BMWS5Em0O5g4Q6yhwHXatwnf28%3D Status Code: 2 Status Message: Package Invalid
LogFileURLに指定されたURLにアクセスすると、エラー情報がJSONで表示される。
問題の解決方法
表示されている問題の解決方法は以下を参照。
Resolving Common Notarization Issues
Ensure a Valid Code Signature
アプリケーションは署名されている必要があります。
アプリケションバンドル内にフレームワークや他のアプリケーションが含まれている場合、それらについても全て署名されている必要があります。
Use a Valid Developer ID Certificate
署名に使用する証明書はDeveloper ID証明書である必要があります。 Developer ID証明書はApple Developerサイトで作成できる以下の証明書です。アプリケーションやフレームワークの署名に使用する"Developer ID Application"とインストーラ(.pkg)用の"Developer ID Installer"があります。
Include a Secure Timestamp
署名時にSecure Timestampを含める必要があります。
ビルド設定のOTHER_CODE_SIGN_FLAGS
に--timestamp
を指定することでSecure Timestampが含まれるようになります。
Avoid the Get-Task-Allow Entitlement
com.apple.security.get-task-allow
権限を外す必要があります。
この権限はプロジェクト作成時に自動で追加されており、デバッグに必要になります。無効にするには、CODE_SIGN_INJECT_BASE_ENTITLEMENTS
にNO
を指定します。
Use the macOS 10.9 SDK or Later
そのままです。macOS 10.9以上のSDKを使用する必要があります。
Enable the Hardened Runtime
Hardened Runtimeを有効にする必要があります。