macOS 用 Unity アプリケーションのビルド手順と考慮すべき事項については、以下を参照してください。
macOS 用のアプリケーションをビルドするにあたっては、Apple デバイスの種類によってチップセットが異なることに注意してください。Apple デバイスには、インテルのチップセットを使用するものと Apple シリコンを使用するものがあります。Unity では、1 つのアーキテクチャ専用のビルドだけでなく、インテルと Apple シリコンの両方をターゲットにしたビルドも作成できます。利用可能なターゲットアーキテクチャは以下の通りです。
| Architecture | 説明 |
|---|---|
| Intel 64 ビット | インテル® 64 を使用して、インテル製チップセットを搭載したアップル製デバイス用にビルドします。 |
| Apple シリコン | Apple シリコンアーキテクチャを使用する Apple 製デバイス用にビルドする場合に選択してください。 |
| Intel 64-bit + Apple silicon | Intel 64-bit + Apple silicon を使用すると、インテルのチップセットと Apple シリコンの両方で動作する macOS ビルドが生成されます。 ノート: この方法で完成したビルドのサイズは、アーキテクチャ専用ビルドよりも大きくなり、アプリケーションのサイズに影響します。 |
アプリケーションのターゲットアーキテクチャは、macOS の Build Settings ウィンドウで設定できます。
Unity アプリケーションをビルドするには、以下の手順に従います。
ノート: Windows で macOS アプリケーションをビルドする場合は、macOS でアプリケーションを開く前に、バイナリに対して executable フラグを設定する必要があります。
macOS 用にビルドするときに、ターゲットのビルドが同じである複数の同名ネイティブソースファイルをプラグインとして使用すると、ビルドが失敗します。
例えば、2 つ以上の同名ファイルがあり、ターゲットアーキテクチャがそれぞれに異なる場合に (macOS ARM64 と macOS x64 など)、両方のアーキテクチャを含むユニバーサルアプリケーションをビルドすると、そのビルドは失敗します。これは、両方のファイルがビルドに含まれており、ビルドの競合が発生するためです。
Xcode は、異なるアーキテクチャをターゲットとするファイルの使用をサポートしていないため、ファイルを 1 つにマージするか、ファイルの名前を変更して、両方のアーキテクチャとの互換性を確保する必要があります。
macOS のアプリケーションには Info.plist という情報プロパティリストファイルが必要です。このファイルには、アプリケーションのメタデータと設定情報が含まれています。このファイルは、キーと値のペアのリストを保持します。
Unity は、アプリケーションをビルドする時に Info.plist ファイルを作成します。このファイルは ApplicationName.app > Contents > Info.plist に格納されます。必要な Info.plist 設定プロパティが Player Settings ウィンドウに表示されますので、アプリケーションをビルドする前に設定できます。これらのプロパティは Other Settings > Mac App Store Options セクションにあります。
Info.plist ファイルに加えることができる追加的なキーもあります。追加するには、アプリケーションをビルドしてから、テキストエディターでファイルを編集します。使用可能なキーについては、About Info.plist Keys and Values を参照してください。
macOS アプリケーションには、アプリケーションの特定のアクションを制御する権限と制限を指定するための エンタイトルメント が必要です。アプリケーションには、Hardened Runtime のためのエンタイトルメントが含まれている必要があります。こうしたエンタイトルメントは、コードインジェクションや、動的にリンクされたライブラリのハイジャック、およびメモリの改ざんから、アプリケーションを保護します。
macOS アプリケーションは、ファイル拡張子が .entitlements である XML ファイルを使用してエンタイトルメントを定義してから、コード署名 と呼ばれるプロセスでアプリケーションにエンタイトルメントをバインドします。
アプリケーションが、macOS プラットフォーム固有のアクションを実行するプラグインを使用している場合は、そうしたアクションを有効にするために、エンタイトルメントの追加が必要な場合があります。エンタイトルメントを必要とするアクションの詳細は、 Apple Developer の Entitlements を参照してください。
コード署名は、アプリケーションのコード署名を作成するプロセスです。コード署名は、アプリケーションの整合性を保証し、あらゆる改ざんからアプリケーションを保護します。Apple のデバイスは、アプリケーションのコード署名を使用して、開発者によるコード署名の作成後に行われた変更を検出します。アプリケーションにコード署名がない場合は、エンドユーザーがアプリケーションを開く前にデバイスが警告を出します。Unity は、macOS 用にビルドするアプリケーションのコード署名を自動で行います。
公証とは、Developer ID で署名されたアプリケーションに悪意のあるコンテンツが含まれていないことを確認するために Apple が使用するプロセスです。デジタル配信サービスでは、プラットフォームでアプリケーションを公開するにあたって、事前にアプリケーションの公証が必要とされることがよくあります。Mac App Store には、公証に類似したコンテンツ検証システムがあるため、同ストアを通して配信されるアプリケーションは事前の公証を必要としません。