Notarizationに失敗した場合の対処方法

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"があります。

f:id:shindo1687:20200319222033p:plain

Include a Secure Timestamp

署名時にSecure Timestampを含める必要があります。
ビルド設定のOTHER_CODE_SIGN_FLAGS--timestampを指定することでSecure Timestampが含まれるようになります。

f:id:shindo1687:20200319222647p:plain

Avoid the Get-Task-Allow Entitlement

com.apple.security.get-task-allow 権限を外す必要があります。
この権限はプロジェクト作成時に自動で追加されており、デバッグに必要になります。無効にするには、CODE_SIGN_INJECT_BASE_ENTITLEMENTSNOを指定します。

f:id:shindo1687:20200319223248p:plain

Use the macOS 10.9 SDK or Later

そのままです。macOS 10.9以上のSDKを使用する必要があります。

f:id:shindo1687:20200319224154p:plain

Enable the Hardened Runtime

Hardened Runtimeを有効にする必要があります。

f:id:shindo1687:20200319224047p:plain