Share via


Mac Catalyst の機能

Mac Catalyst .NET マルチプラットフォーム アプリ UI (.NET MAUI) アプリでは、アプリとシステム リソースまたはユーザー データ間のアクセスを制限する一連のルールを提供するサンドボックスで実行されます。 Apple は、Mac Catalyst アプリの機能を拡張し、実行可能な範囲を広げる手段として、アプリ サービスとしてよく知られる機能を提供しています。 機能の詳細については、developer.apple.com の「機能」をご覧ください。

機能はアプリのプロビジョニング プロファイルに追加され、アプリにコード署名するときに使用されます。 プロビジョニング プロファイルには、必要な機能が有効になっている、アプリのバンドル識別子と一致するアプリ ID が含まれている必要があります。 プロビジョニング プロファイルは Apple 開発者アカウントで作成する必要があります。

機能はエンタイトルメントの概念と密接に関連しています。 どちらの場合も、アプリが実行されるサンドボックスの拡張を要求して、追加の機能を提供します。 通常、エンタイトルメントはアプリの開発時に追加されますが、機能は通常、配布用にアプリにコード署名するときに追加されます。 エンタイトルメントの詳細については、「エンタイトルメント」をご覧ください。

Apple 開発者アカウントに機能を追加する

Apple 開発者アカウントのアプリのプロビジョニング プロファイルに機能を追加できます。 これは、署名証明書、アプリ ID、プロビジョニング プロファイルの作成が必要な複数の手順からなるプロセスです。

新しい機能をプロビジョニング プロファイルに追加する場合は、同じ機能をアプリの Entitlements.plist ファイルにも追加し、アプリがこのファイルを使用していることを確認する必要があります。 詳細については、「エンタイトルメント」をご覧ください。 特定の機能では、Info.plist でプライバシー キーを設定する必要がある場合もあります。

署名証明書を作成する

プロビジョニング プロファイルを作成するには、署名証明書を以前に作成している必要があります。 署名証明書の種類は、アプリの対象となる配布チャネルによって異なります。

App Service でアプリ ID を作成する

アプリ ID は、アプリを一意に識別する逆引き DNS 文字列に似ており、配布するアプリを識別するために必要です。 アプリ ID は、アプリのバンドル識別子と同一である必要があります。

重要

.NET MAUI アプリのバンドル識別子は、アプリケーション ID プロパティとしてプロジェクト ファイルに格納されます。

  • Visual Studio では、ソリューション エクスプローラーで、.NET MAUI アプリ プロジェクトを右クリックし、[プロパティ] を選択します。 次に、[MAUI 共有 > 一般] タブに移動します。[アプリケーション ID] フィールドにはバンドル識別子がリストされます。
  • Visual Studio for Mac の ソリューション ウィンドウで、.NET MAUI アプリ プロジェクトを右クリックし、[プロパティ] を選択します。 次に、[プロジェクト プロパティ] ウィンドウで、[ビルド > アプリ情報] タブを選択します。[アプリケーション ID] フィールドにはバンドル ID がリストされます。

[アプリケーション ID] フィールドの値が更新されると、Info.plist 内のバンドル ID の値も自動的に更新されます。

アプリ ID には、明示的なものとワイルドカードの 2 種類があります。 明示的なアプリ ID は 1 つのアプリに固有であり、通常は com.domainname.myid の形式になります。 明示的なアプリ ID を使用すると、一致するバンドル識別子を持つ 1 つのアプリをデバイスにインストールできます。 アプリ固有の機能を有効にするアプリには、明示的なアプリ ID が必要です。

明示的なアプリ ID は、次の手順で作成できます。

  1. Web ブラウザーで、Apple 開発者アカウントの [識別子] セクションに移動し、+ ボタンをクリックします。

  2. [新しい ID の登録] ページで、[アプリ ID] を選び、[続行] ボタンをクリックします。

  3. [新しい ID の登録] ページで、[アプリ] の種類を選択し、[続行] ボタンをクリックします

  4. [アプリ ID の登録] ページで、[説明] を入力し、[バンドル ID][明示的] に設定します。 次に、com.domainname.myid の形式でアプリ ID を入力します。

    Screenshot of new App ID registration page with required fields populated.

  5. [アプリ ID の登録] ページで、[機能] タブと [アプリ サービス] タブで必要な機能を有効にします。

    Screenshot of enabled capabilities.

  6. [アプリ ID の登録] ページで、[続行] ボタンをクリックします。

  7. [アプリ ID の確認] ページで情報を確認し、[登録] ボタンをクリックします。 App ID が正常に登録されていれば、Apple 開発者アカウントの [識別子] セクションに戻ります。

  8. [識別子] ページで、先ほど作成したアプリ ID をクリックします。

  9. [アプリ ID 構成の編集] ページには、追加のセットアップを必要とする有効な機能には、[構成] ボタンがあります。

    Screenshot of editing capabilities.

    [構成] ボタンをクリックして、有効な機能を構成します。 詳細については、developer.apple.com の「アプリ機能の構成」をご覧ください。

プロビジョニング プロファイルを作成する

アプリ ID を作成したら、アプリ ID のプロビジョニング プロファイルを作成する必要があります。 作成するプロビジョニング プロファイルは、アプリの対象となる配布チャネルによっても異なります。

プロビジョニング プロファイルをダウンロードする

Note

Visual Studio for Mac は、Microsoft の最近のライフサイクル ポリシー に従って、2024 年 8 月 31 日までに廃止される予定です。 Visual Studio for Mac 17.6 は 2024 年 8 月 31 日までサポートが継続され、セキュリティ問題や Apple からのプラットフォーム更新のためのサービス更新プログラムが提供されます。 Mac で開発するための代替オプションなどの詳細については、「Visual Studio for Mac に何が起こっているのか?」をご覧ください。

プロビジョニング プロファイルを作成したら、Visual Studio for Mac によってダウンロードする必要があります。

  1. Visual Studio for Mac で、[Visual Studio] > [設定] > [公開] > [Apple 開発者アカウント] に移動します。
  2. [Apple 開発者アカウント] ウィンドウでチームを選択し、[詳細の表示...] ボタンをクリックします。
  3. [詳細] ウインドウで、新しいプロファイルが [プロビジョニング プロファイル] 一覧に表示されていることを確認します。 場合によって Visual Studio for Mac を再起動して、リストを最新の情報に更新する必要があります。
  4. [詳細] ダイアログで、[すべてのプロファイルのダウンロード] ボタンをクリックします。

その後、プロビジョニング プロファイルを使用できるようになります。

Note

Xcode でプロビジョニング プロファイルをダウンロードすることもできます。 詳細については、「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 ファイルを使用していることを確認します。