iOS の機能

iOS では、.NET Multi-platform App UI (.NET MAUI) アプリはサンドボックスで実行されます。このサンドボックスでは、アプリケーションと特定のシステム リソースまたはユーザー データ間のアクセスを制限する一連の規則が提供されます。 Apple は、機能を拡張し、iOS アプリで実行可能な範囲を広げる手段として、アプリ サービスとしてよく知られる機能を提供しています。 機能を使用すると、Siri との統合など、プラットフォーム機能とのより深い統合をアプリに追加できます。 機能の詳細については、developer.apple.com の「機能」をご覧ください。

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

機能はエンタイトルメントの概念と密接に関連しています。 どちらの場合も、アプリが実行されるサンドボックスの拡張を要求して、追加の機能を提供します。 通常、エンタイトルメントはアプリの開発時に追加されますが、機能は通常、配布用にアプリに署名するコード時に追加されます。 ただし、自動プロビジョニングが有効になっている場合、アプリに特定のエンタイトルメントを追加すると、そのプロビジョニング プロファイルでアプリの機能も更新されます。 エンタイトルメントの詳細については、「エンタイトルメント」をご覧ください。

Visual Studio で機能を追加する

機能は、Visual Studio のプロビジョニング プロファイルに追加できます。 この方法では、自動プロビジョニングを使用する必要があり、機能のサブセットに対してのみ機能します。 自動プロビジョニングの詳細については、「iOS アプリの自動プロビジョニング」をご覧ください。

次の一覧は、Visual Studio を使用して自動的にプロビジョニングできる機能を示します。

  • HealthKit
  • HomeKit
  • ホットスポットの構成
  • アプリ間オーディオ
  • マルチパス
  • ネットワーク拡張機能
  • 近距離通信タグ リーダー
  • 個人の VPN
  • Siri
  • ワイヤレス アクセサリの構成

Visual Studio では、すべての機能はアプリの Entitlements.plist ファイルに追加されます。 上記の機能もプロビジョニング プロファイルに追加されます。 エンタイトルメント ファイルをプロジェクトに追加する方法など、エンタイトルメントの詳細については、「エンタイトルメント」をご覧ください。

Visual Studio で機能を追加するには、次の手順を行います。

  1. Visual Studio で、IDE が Mac ビルド ホストとペアリングされていることを確認します。 詳細については、「iOS 開発のための Mac とのペアリング」をご覧ください。

  2. Visual Studio で、プロジェクトの自動プロビジョニングを有効にします。 詳細については、「自動プロビジョニングを有効にする」をご覧ください。

  3. Visual Studio で、Entitlements.plist ファイルをプロジェクトに追加します。 詳細については、「Entitlements.plist ファイルを追加する」をご覧ください。

  4. ソリューション エクスプローラー で、.NET MAUI アプリ プロジェクトの Platforms > iOS フォルダーにある Entitlements.plist ファイルをダブルクリックして、エンタイトルメント エディターで開きます。

  5. エンタイトルメント エディターで、アプリに必要なすべてのエンタイトルメントを選択して構成します。

    Visual Studio iOS エンタイトルメントの構成

  6. Entitlements.plist ファイルへの変更を保存して、エンタイトルメント キーと値のペアをファイルに追加し、アプリ ID に App Service を追加します。

また、特定の機能のために Info.plist でプライバシー キーを設定する必要がある場合もあります。

Apple Developer Account で機能を追加する

すべての機能は、 Apple Developer Account でアプリのプロビジョニング プロファイルに追加できます。 この方法では、手動プロビジョニングを使用する必要があり、すべての機能で動作します。 手動でのプロビジョニングの詳細については、「iOS アプリの手動プロビジョニング」をご覧ください。

Apple Developer Account で機能を追加することは、アプリ ID の作成、プロビジョニング プロファイルの作成、手動プロビジョニングの有効化を必要とするマルチステップのプロセスです。

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

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 は、次の手順で作成できます。

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

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

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

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

    必須フィールドが入力された新しいアプリ ID 登録ページのスクリーンショット。

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

    有効な機能のスクリーンショット。

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

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

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

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

    編集機能のスクリーンショット。

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

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

アプリ ID を作成したら、アプリ ID のプロビジョニング プロファイルを作成する必要があります。 そのためには、事前に署名証明書を作成し、Apple Developer Account にデバイスを追加する必要があります。 詳細については、「署名証明書を作成する」と「デバイスを追加する」をご覧ください。

プロビジョニング プロファイルは、次の手順で作成できます。

  1. Web ブラウザーで、Apple Developer Account の [プロファイル] セクションに移動し、[+] ボタンをクリックします。

  2. [新しいプロビジョニング プロファイルの登録] ページの [開発] セクションで、[iOS アプリ開発] (または [配布] セクションから配布プロファイルのタイプ) を選択し、[続行] ボタンをクリックします。

    iOS アプリ開発用のプロビジョニング プロファイルの作成のスクリーンショット。

  3. [プロビジョニング プロファイルの生成] ページで、アプリ ID を選択し、[続行] ボタンをクリックします。

    プロビジョニング プロファイルにアプリ ID を追加するスクリーンショット。

  4. [プロビジョニング プロファイルの生成] ページで、プロビジョニング プロファイルに含める証明書を選択し、[続行] ボタンをクリックします。

    プロビジョニング プロファイルに証明書を追加するスクリーンショット。

  5. [プロビジョニング プロファイルの生成] ページで、アプリがインストールされるデバイスを選択し、[続行] ボタンをクリックします。

    プロビジョニング プロファイルにデバイスを追加するスクリーンショット。

  6. [プロビジョニング プロファイルの生成] ページで、プロビジョニング プロファイル名を指定し、[生成] ボタンをクリックします。

    プロビジョニング プロファイルの名前付けのスクリーンショット。

手動プロビジョニングを有効にする

プロビジョニング プロファイルを作成したら、Visual Studio でダウンロードし、プロジェクトのプロビジョニング プロファイルとして設定する必要があります。

  1. Visual Studio で、作成したプロビジョニング プロファイルをダウンロードして、アプリの署名に使用できるようにします。 詳細については、「プロビジョニング プロファイルを Visual Studio にダウンロードする」をご覧ください。
  2. Visual Studio で、プロジェクトの手動プロビジョニングを有効にします。 詳細については、「手動プロビジョニングを有効にする」をご覧ください。

トラブルシューティング

次の一覧では、機能を使用する .NET MAUI iOS アプリを開発するときに問題が発生する可能性がある一般的な問題について詳しく説明します。

  • 正しいアプリ ID が作成され、Apple 開発者アカウントの [識別子] セクションに登録されていることを確認します。
  • 機能がアプリ ID に追加されていること、および機能が正しい値を使用して構成されていることを確認してください。
  • プロビジョニング プロファイルが開発マシンにインストールされていること、およびアプリの Info.plist ファイルがアプリ ID と同じバンドル識別子を使用していることを確認してください。
  • アプリの Entitlements.plist ファイルで適切なエンタイトルメントが有効になっていることを確認してください。
  • 必要なプライバシー キーが Info.plist に設定されていることを確認してください。
  • アプリが Entitlements.plist ファイルを使用していることを確認します。