ここでは、アプリケーションを Mac App Store へ配信する手順を説明します。
まず、キーチェーンに正しい 2 つのプロビジョニングプロファイル “3rd Party Mac Developer Application” と “3rd Party Mac Developer Installer” がインストールされていることを確認してください。この方法については、Apple の開発者のドキュメントで署名認証と証明書の管理 に関するセクションを参照してください。
Edit > Project Settings の順に移動し、Player カテゴリを選択します。Standalone (スタンドアロン) ターゲットを選択し、Other Settings セクションを展開し、Mac App Store Options に移動します。
Unity はこれらの設定を自動的に CF キーとしてアプリケーションの info.plist ファイルに適用します (詳しくは、Apple の開発者用ドキュメントの Core Foundation Keys を参照)。
プロパティ | 機能 |
---|---|
Bundle Identifier | iTunesConnect AppのBundle IDを入力します。関連するinfo.plistファイルに CFBundleIdentifier として表示されます。アップルの開発者向けドキュメントCFBundleIdentifierを参照してください。 General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#/apple_ref/doc/uid/20001431–102070)を参照してください。 |
Build | アプリケーションのこのバージョンのビルド番号を入力します。関連する info.plist ファイルに CFBundleVersion として表示されます。詳しくは、Apple の開発者のドキュメントで CFBundleVersion]アプリケーションのこのバージョンのビルド番号を入力します。関連する info.plist ファイルに CFBundleVersion として表示されます。詳しくは、[Apple の開発者のドキュメントで CFBundleVersion を参照してください。 |
Category | アプリケーションのタイプに関連する文字列を入力します。App Store はこの文字列を使用して、アプリケーションの適切なカテゴリを決定します。デフォルトでは、ゲームカテゴリ public.app-category.games に設定されています。使用可能なカテゴリのリストは、Apple の開発者のドキュメントのLSApplicationCategoryType を参照してください。 |
Mac App Store Validation | これを有効にすると、Mac App Store からの有効な証明書がある場合にのみアプリケーションが実行されます。これにより、アプリケーションを購入したデバイスとは異なるデバイスで実行することができなくなります。独自の証明書の検証を実装している場合にのみ、この設定を無効にしてください。 |
Mac App Store Validation を有効にしてから、アプリケーションをビルドします (File > Build Settings… > Build)。
次に、GAMENAME.entitlements
ファイルを作成し、それを任意の場所に保存します。最も簡単な方法は、空の Mac アプリケーションを作成することです。これを行うには、Xcode を開き、macOS テンプレートを使用して新しいプロジェクトを作成し、Capabilities バーに移動して App Sandbox を有効にします。これにより、基本的な .entitlements ファイルが自動的に生成されます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key> <true/>
</dict>
</plist>
Xcode (または、任意のテキストエディター) で info.plist ファイルを開き、以下のキーを加えます。
<key>LSApplicationCategoryType</key>
<string>{VALID APP CATEGORY, e.g.: public.app-category.kids-games }</string>
<key>CFBundleSignature</key>
<string>{4 LETTER CREATOR CODE, e. g.: GMAD }</string>
Xcode 8.0 以降を使用している場合は、これらを info.plist ファイルにも加える必要があります。
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
次に、.app ですべてのコンテンツの読み込み権限を修正します。これを行うには、macOS のターミナルで以下を入力します。
chmod -R a+xr "/path/to/GAMENAME.app"
先に作成した .entitlements で .App に署名します。これを行うには、macOS のターミナルで以下を入力します。
codesign -o runtime -f --deep -s '3rd Party Mac Developer Application: DEVELOPER NAME' --entitlements "GAMENAME.entitlements" "/AppPath/GAMENAME.app"
ノート: -o runtime
スイッチは Hardened Runtime を有効にするようにコードサインに指示します。macOS 10.14 以来、これはアプリケーションが App Store と Apple Notary Service (Apple 公証サービス) の検証にパスための要件です。
インストーラー、または、パッケージをビルドします。これを行うには、macOS のターミナルで以下を入力します。
productbuild --component GAMENAME.app /Applications --sign "3rd Party Mac Developer Installer: DEVELOPER NAME" GAMENAME.pkg
最後に、Xcode の ApplicationLoader を使ってアプリケーションを送信します。
公証は、Apple が悪意のあるコンポーネントをチェックするために使用するプロセスです。これは自動システムであり、App Review ではありません。
Apple デベロッパドキュメントには、以下のように説明されています。
“macOS 10.14.5 以降、新しい Developer ID 証明書で署名されたソフトウェアとすべての新規または更新されたカーネル拡張は、実行するために公証される必要があります。macOS 10.15 以降、2019 年 6 月 1 日以降にビルドされ、Developer IDで配布されるすべてのソフトウェアは公証を受ける必要があります。ただし、App Store 提出プロセスにはすでに同等のセキュリティチェックが含まれているため、Mac App Store を通じて配布するソフトウェアを公証する必要はありません。”
詳細は、Notarizing macOS Software Before Distribution. を参照してください。
デフォルトでは、Unity は Player 設定の Icon パネルで指定したアイコン画像を縮小し (Edit > Project Settings に移動し、Player カテゴリを選択)、.icns ファイルを生成します。これにより、Mac OS Finder と OS ドックにアプリケーションのアイコンがどのように表示されるかを定義します。ただし、必要に応じてカスタムアイコンに置き換えることができます。
CFBundleIconFile/Icon File
フィールドに設定されている名前) と名付け、以下の画像名を内部に置きます。このフォルダーには .iconset 拡張子が必要です。 icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png
@ 2x.png
画像はファイル名で示されているサイズの 2 倍の大きさであることを確認してください。たとえば、画像 512x512@2x.png
は、1024x1024 の画像です。macOS ターミナルから、.iconset ディレクトリがあるディレクトリに移動し、以下のコマンドを入力します。
iconutil -c icns UnityPlayer.iconset
最後に.app ファイルを右クリックし Show Contents を選択し、iconset.icns を以前に作成したものと置き換えます。
2017–05–18 公開ページ
5.6 のアップデート機能