Mac App Store の外部に配布するには、アプリケーションの公証が必要です。このプロセスによってアプリケーションが検証され、開発者 ID コードの署名があり、悪意のあるコンテンツがないことが確認されます。Xcode、Xcode コマンドラインツール、または Unity Build Automation を使用して、アプリケーションを公証できます。
Unity では、ビルドプロセス中に、Unity プロジェクトを表す Xcode プロジェクトを作成することができます。この Xcode プロジェクトを使用してアプリケーションの公証を受けることが可能です。Unity プロジェクトからの Xcode プロジェクトの作成は、macOS アプリケーションのビルドに記載されているステップで行ってください。Xcode プロジェクトの公証については、Notarizing macOS Software Before Distribution を参照してください。
ノート: Mac App Store でアプリケーションを配信する場合、公証は必要ありません。Mac App Store のアップロードプロセスには、公証に類似したコンテンツ検証が含まれています。詳細は Mac App Store への配信を参照してください。
Xcode 環境でアプリケーションの公証を受けられない場合や、公証処理を手動で制御したい場合は、Xcode のコマンドラインツールが使用できます。
これには以下が必要です。
Apple は、公証のためにアプリケーションをアップロードする前に、アプリケーションを圧縮することを要件として設けています。このためには以下のステップを実施してください。
ターミナルを開き、アプリケーションのあるディレクトリに移動します。
"application_name.app" はビルドしたアプリケーションです。"application_name.zip" は生成する圧縮ファイルの名前です。ditto -c -k
--sequesterRsrc
--keepParent "application_name.app" "application_name.zip"
これにより、アプリケーションが圧縮され、アプリケーションと同じディレクトリに圧縮ファイルが出力されます。
Apple は、アプリケーションを公証するにあたって、特定の形式の固有のパスワードを必要とします。アプリケーションパスワードの生成方法については、How to generate an app-specific password を参照してください。生成するパスワードには、xxxx-xxxx-xxxx-xxxx という形式が使用されます。
Xcode 13 以降を使用している場合は、Apple の notarytool を使用してアプリケーションをアップロードし、公証します。詳細については、Customizing the Notarization Workflow と Enable notarization on an older version of macOS を参照してください。
ノート: 2023 年 11 月 1 日より、Appleは公証への altool の使用を非推奨にしました。ワークフローを更新して、macOS アプリケーションの公証に notarytool を使用する必要があります。詳細については Migrating to the latest notarization tool を参照してください。
公証を受けたアプリケーションは、コード署名付きで、悪意のあるコンテンツを含まないものとして、すべての実行デバイスで検証可能になります。ただし、デバイスはこの検証をオンラインでしか実行できません。デバイスをインターネットに接続せずにアプリケーションを検証するには、アプリケーションをステープルする必要があります。ステープルの詳細については、配信物にチケットをステープルするを参照してください。
アプリケーションのステープルは、以下の手順で行います。
"ApplicationName.app" をアプリケーション名にして以下のコマンドを実行します。xcrun stapler staple "ApplicationName.app"