Mac Catalyst の機能
Mac Catalyst .NET マルチプラットフォーム アプリ UI (.NET MAUI) アプリでは、アプリとシステム リソースまたはユーザー データ間のアクセスを制限する一連のルールを提供するサンドボックスで実行されます。 Apple は、Mac Catalyst アプリの機能を拡張し、実行可能な範囲を広げる手段として、アプリ サービスとしてよく知られる機能を提供しています。 機能の詳細については、developer.apple.com の「機能」をご覧ください。
機能はアプリのプロビジョニング プロファイルに追加され、アプリにコード署名するときに使用されます。 プロビジョニング プロファイルには、必要な機能が有効になっている、アプリのバンドル識別子と一致するアプリ ID が含まれている必要があります。 プロビジョニング プロファイルは Apple 開発者アカウントで作成する必要があります。
機能はエンタイトルメントの概念と密接に関連しています。 どちらの場合も、アプリが実行されるサンドボックスの拡張を要求して、追加の機能を提供します。 通常、エンタイトルメントはアプリの開発時に追加されますが、機能は通常、配布用にアプリにコード署名するときに追加されます。 エンタイトルメントの詳細については、「エンタイトルメント」をご覧ください。
Apple 開発者アカウントに機能を追加する
Apple 開発者アカウントのアプリのプロビジョニング プロファイルに機能を追加できます。 これは、署名証明書、アプリ ID、プロビジョニング プロファイルの作成が必要な複数の手順からなるプロセスです。
新しい機能をプロビジョニング プロファイルに追加する場合は、同じ機能をアプリの Entitlements.plist ファイルにも追加し、アプリがこのファイルを使用していることを確認する必要があります。 詳細については、「エンタイトルメント」をご覧ください。 特定の機能では、Info.plist でプライバシー キーを設定する必要がある場合もあります。
署名証明書を作成する
プロビジョニング プロファイルを作成するには、署名証明書を以前に作成している必要があります。 署名証明書の種類は、アプリの対象となる配布チャネルによって異なります。
- Mac App Store 経由でアプリを配布する場合は、「Mac App Store 配布用の Mac Catalyst アプリの公開」の「配布証明書の作成」をご覧ください。
- アプリを Mac App Store 以外で配布する場合は、「Mac App Store 以外で配布する Mac Catalyst アプリを公開する」の「開発者 ID アプリケーション証明書を作成する」をご覧ください。
- Mac App Store 以外で、登録済みデバイス上の限られた数のユーザーにアプリを配布する場合は、「アドホック配布用の Mac Catalyst アプリの公開」の「開発証明書の作成」をご覧ください。
App Service でアプリ ID を作成する
アプリ ID は、アプリを一意に識別する逆引き DNS 文字列に似ており、配布するアプリを識別するために必要です。 アプリ ID は、アプリのバンドル識別子と同一である必要があります。
重要
.NET MAUI アプリのバンドル識別子は、アプリケーション ID プロパティとしてプロジェクト ファイルに格納されます。 Visual Studio では、ソリューション エクスプローラーで、.NET MAUI アプリ プロジェクトを右クリックし、[プロパティ] を選択します。 次に、[MAUI 共有 > 一般] タブに移動します。[アプリケーション ID] フィールドにはバンドル識別子がリストされます。
[アプリケーション ID] フィールドの値が更新されると、Info.plist 内のバンドル ID の値も自動的に更新されます。
アプリ ID には、明示的なものとワイルドカードの 2 種類があります。 明示的なアプリ ID は 1 つのアプリに固有であり、通常は com.domainname.myid
の形式になります。 明示的なアプリ ID を使用すると、一致するバンドル識別子を持つ 1 つのアプリをデバイスにインストールできます。 アプリ固有の機能を有効にするアプリには、明示的なアプリ ID が必要です。
明示的なアプリ ID は、次の手順で作成できます。
Web ブラウザーで、Apple 開発者アカウントの [識別子] セクションに移動し、+ ボタンをクリックします。
[新しい ID の登録] ページで、[アプリ ID] を選び、[続行] ボタンをクリックします。
[新しい ID の登録] ページで、[アプリ] の種類を選択し、[続行] ボタンをクリックします
[アプリ ID の登録] ページで、[説明] を入力し、[バンドル ID] を [明示的] に設定します。 次に、
com.domainname.myid
の形式でアプリ ID を入力します。[アプリ ID の登録] ページで、[機能] タブと [アプリ サービス] タブで必要な機能を有効にします。
[アプリ ID の登録] ページで、[続行] ボタンをクリックします。
[アプリ ID の確認] ページで情報を確認し、[登録] ボタンをクリックします。 App ID が正常に登録されていれば、Apple 開発者アカウントの [識別子] セクションに戻ります。
[識別子] ページで、先ほど作成したアプリ ID をクリックします。
[アプリ ID 構成の編集] ページには、追加のセットアップを必要とする有効な機能には、[構成] ボタンがあります。
[構成] ボタンをクリックして、有効な機能を構成します。 詳細については、developer.apple.com の「アプリ機能の構成」をご覧ください。
プロビジョニング プロファイルを作成する
アプリ ID を作成したら、アプリ ID のプロビジョニング プロファイルを作成する必要があります。 作成するプロビジョニング プロファイルは、アプリの対象となる配布チャネルによっても異なります。
- Mac App Store 経由でアプリを配布する場合は、「Mac App Store 配布用の Mac Catalyst アプリの公開」の「プロビジョニング プロファイルの作成」をご覧ください。
- Mac App Store 以外でアプリを配布する場合は、「Mac App Store 以外で配布する Mac Catalyst アプリを公開する」の「プロビジョニング プロファイルを作成する」をご覧ください。
- Mac App Store 以外で、登録済みデバイス上の限られた数のユーザーにアプリを配布する場合は、アドホック配布用の Mac Catalyst アプリの公開」の「プロビジョニング プロファイルの作成」をご覧ください。
Xcode でプロビジョニング プロファイルをダウンロードする
Apple 開発者アカウントでプロビジョニング プロファイルを作成した後、Xcode はそれをダウンロードして、アプリの署名に使用できるようにします。
Mac で Xcode を起動します。
Xcode で、Xcode > Preferences... メニュー項目を選択します。
[Preferences] ダイアログで、[アカウント] タブを選択します。
[アカウント] タブで + ボタンをクリックして Apple 開発者アカウントを Xcode に追加します。
アカウントの種類のポップアップで、[Apple ID] を選択し、[続行] ボタンをクリックします。
サインイン ポップアップで Apple ID を入力し、[次へ] ボタンをクリックします。
サインイン ポップアップで、Apple ID のパスワードを入力し、[次へ] ボタンをクリックします。
[アカウント] タブで [証明書の管理...] ボタンをクリックして、配布証明書がダウンロードされていることを確認します。
[アカウント] タブで、[手動プロファイルのダウンロード] ボタンをクリックして、プロビジョニング プロファイルをダウンロードします。
ダウンロードが完了するまで待ってから、Xcode を閉じます。
プロジェクト ファイルでビルド プロパティを定義する
アプリのプロジェクト ファイルは、署名証明書、プロビジョニング プロファイル、エンタイトルメント ファイルを使用するように更新する必要があります。 これを実現するには、プロジェクト ファイルの <PropertyGroup>
に次のビルド プロパティを追加します。
プロパティ | 値 |
---|---|
<CodesignKey> |
コード署名キーの名前。 キーチェーン アクセスに表示される配布証明書の名前に設定します。 |
<CodesignEntitlements> |
アプリに必要なエンタイトルメントを指定するエンタイトルメント ファイルへのパス。 Platforms\MacCatalyst\Entitlements.plist に設定します。 |
<CodesignProvision> |
アプリ バンドルに署名するときに使用するプロビジョニング プロファイル。 |
<EnableCodeSigning> |
true に設定すると、コード署名が有効になります。 |
次の例は、Mac App Store 配布用の Mac Catalyst アプリをビルドして署名するための一般的なプロパティ グループを示しています。
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<EnableCodeSigning>True</EnableCodeSigning>
<CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
</PropertyGroup>
トラブルシューティング
次の一覧では、機能を使用する .NET MAUI Mac Catalyst アプリを開発するときに問題が発生する可能性がある一般的な問題について詳しく説明します。
- 正しいアプリ ID が作成され、Apple 開発者アカウントの [識別子] セクションに登録されていることを確認してください。
- 機能がアプリ ID に追加されていること、および機能が正しい値を使用して構成されていることを確認してください。
- プロビジョニング プロファイルが開発マシンにインストールされていること、およびアプリの Info.plist ファイルがアプリ ID と同じバンドル識別子を使用していることを確認してください。
- アプリの Entitlements.plist ファイルで適切なエンタイトルメントが有効になっていることを確認してください。
- 必要なプライバシー キーが Info.plist に設定されていることを確認してください。
- アプリが Entitlements.plist ファイルを使用していることを確認します。
.NET MAUI