iOS アプリの手動プロビジョニング
手動プロビジョニングは、.NET Multi-Platform App UI (.NET MAUI) iOS アプリをデバイスにデプロイするためのアプローチです。デバイスでは、作成されるプロビジョニング データを完全に制御できます。 この方法では、Apple 開発者アカウントで署名 ID、アプリ ID、プロビジョニング プロファイルを手動で作成して管理し、このデータを Visual Studio にダウンロードする必要があります。 手動プロビジョニング プロセスを開始する前に、Apple 開発者アカウントを Visual Studio に追加しておく必要があります。 詳細については、「Apple アカウントの管理」をご覧ください。
開発チーム、証明書、プロファイルなどを管理するには、Apple Developer アカウントの「Certificates, Identifiers & Profiles」セクションにアクセスします。
署名証明書の作成
手動プロビジョニングでは、開発デバイスを設定する最初の手順は、開発証明書と秘密キーで構成される署名証明書を作成することです。
開発証明書とそれに関連付けられているキーによって、Apple との間で ID が確認され、開発用の特定のデバイスとプロファイルに関連付けられます。 これは、デジタル署名をアプリに追加することに似ています。 Apple では、これらの証明書を使用して、特定のデバイスにのみアプリをデプロイできるようにします。
重要
一度に使用できるのは 2 つの iOS 開発証明書だけです。 これ以上作成する必要がある場合は、既存の証明書を取り消す必要があります。 失効した証明書を使用しているコンピューターは、アプリに署名できません。
Apple Developer アカウントを Visual Studio に追加したら、署名証明書を生成する必要があります。
- Visual Studio で、[ツール] > [オプション] > [Xamarin] > [Apple アカウント] に移動します。
- [Apple 開発者アカウント] ダイアログでチームを選択し、[詳細の表示] を選択します。
- [詳細] ダイアログで、[証明書の作成]> [iOS 開発] を選択します。 正しいアクセス許可がある場合は、新しい署名 ID が作成され、Apple と同期されます。
重要
IDE がペアリングされている場合、署名 ID を構成する秘密キーと証明書も Mac ビルド ホストのキーチェーン アクセスにエクスポートされます。 詳細については、「iOS開発のための Mac とのペアリング」をご確認ください。
証明書キー ペアについて
開発者プロファイルには、証明書、証明書に関連付けられたキー、Apple 開発者アカウントに関連付けられているプロビジョニング プロファイルなどが含まれています。 実際には、開発者のプロファイルには 2 つのバージョンがあり、1 つは Apple 開発者アカウントにあり、もう 1 つはローカル コンピューター上にあります。 この 2 つは、含まれるキーの種類が異なります。Apple Developer アカウントのプロファイルには、証明書に関連付けられたすべての公開キーが含まれますが、ローカル マシンのコピーには、すべての秘密キーが含まれています。 証明書を有効にするには、キーのペアが一致しなければなりません。
警告
証明書および関連付けられたキーが失われると、既存の証明書を失効させる必要があり、さらにすべての関連するデバイスを再プロビジョニングする必要があるので、大きな問題になる可能性があります。 開発証明書を正常に設定したら、バックアップ コピーをエクスポートし、安全な場所に保管します。 これを行う方法の詳細については、help.apple.com の「開発者アカウントをエクスポートする」をご覧ください。
開発用の iOS デバイスのプロビジョニング
署名証明書を作成したら、アプリをデバイスにデプロイできるように、開発プロビジョニング プロファイルを設定する必要があります。 デバイスは、Xcode でサポートされている iOS のバージョンを実行している必要があります。
デバイスを追加する
プロビジョニング プロファイルを作成するときには、プロファイルにはアプリを実行できるデバイスを含める必要があります。 プロビジョニング プロファイルに追加するデバイスを選ぶ前に、まず Apple Developer アカウントにデバイスを追加する必要があります。 次の手順でデバイスを追加できます。
USB ケーブルを使用して、プロビジョニングするデバイスをローカルの Mac に接続します。
Xcode を開き、[Window] > [Devices and Simulators] に移動します。
Xcode で、[Devices] タブを選択し、接続されているデバイスの一覧からデバイスを選択します。
Xcode で、"Identifier" の値をクリップボードにコピーします。
Web ブラウザーで、Apple Developer アカウントの [Devices] セクションに移動し、+ ボタンを選択します。
[Register a New Device] ページで、適切なプラットフォームを設定し、新しいデバイスの名前を指定します。 次に、クリップボードから ”Identifier" の値を "Device ID (UDID)" フィールドに貼り付け、[Continue] を選択します。
[Register a New Device] ページで情報を確認し、[Register] を選択します。
.NET MAUI iOS アプリをデプロイする iOS デバイスについて、前の手順を繰り返します。
アプリ ID を作成する
Apple 開発者アカウントにデバイスを追加したら、アプリ ID を作成する必要があります。 アプリ ID は逆引き DNS 文字列に似ています。これはアプリを一意に識別するもので、アプリのバンドル識別子と同じである必要があります。
重要
.NET MAUI アプリのバンドル識別子は、アプリケーション ID プロパティとしてプロジェクト ファイルに格納されます。 Visual Studio では、ソリューション エクスプローラーで、.NET MAUI アプリ プロジェクトを右クリックし、[プロパティ] を選択します。 次に、[MAUI 共有 > 一般] タブに移動します。[アプリケーション ID] フィールドにはバンドル識別子がリストされます。
"アプリケーション ID" フィールドの値が更新されると、Info.plist のバンドル識別子の値が自動的に更新されます。
アプリ ID には 2 種類あります。
- ワイルドカード。 ワイルドカード アプリ ID を使用すると、1 つのアプリ ID を使用して複数のアプリを照合できます。通常は
com.domainname.*
の形式を使用します。 ワイルドカード アプリ ID は、ほとんどのアプリをデバイスにインストールするために使用でき、アプリ固有の機能を有効にしないアプリに使用する必要があります。 - 明示。 明示的なアプリ ID は、1 つのアプリに対して一意であり、通常は
com.domainname.myid
の形式を使用します。 明示的なアプリ ID を使用すると、一致するバンドル識別子を持つ 1 つのアプリをデバイスにインストールできます。 明示的なアプリ ID は、通常、Apple Pay や Game Center などのアプリ固有の機能を有効にするアプリに使用されます。
アプリでアプリ固有の機能を使用しない限り、ワイルドカード アプリ ID を作成することをお勧めします。 機能の詳細については、「機能」をご覧ください。
次の手順で、ワイルドカード アプリ ID を作成できます。
Web ブラウザーで、Apple Developer アカウントの [識別子] セクションに移動し、[+] ボタンをクリックします。
[新しい ID の登録] ページで、[アプリ ID] を選び、[続行] ボタンをクリックします。
[新しい識別子の登録] ページで、アプリの種類を選択し、[続行] ボタンをクリックします。
[アプリ ID の登録] ページで、[説明] に入力し、[バンドル ID] を [ワイルドカード] に設定します。 アプリ ID を
com.domainname.*
の形式で入力し、[続行] をクリックします。[アプリ ID の確認] ページで情報を確認し、[登録] ボタンをクリックします。
開発プロビジョニング プロファイルの作成
アプリ ID が作成されたら、開発プロビジョニング プロファイルを生成する必要があります。 プロビジョニング プロファイルには、プロファイルがどのアプリ (ワイルドカード アプリ ID である場合は複数のアプリ) に関連付けられているか、誰がプロファイルを使用できるか (追加される開発者証明書よって決まります)、どのデバイスがアプリをインストールできるかなどに関する情報が含まれています。
開発プロビジョニング プロファイルは、次の手順で作成できます。
Web ブラウザーで、Apple Developer アカウントの [プロファイル] セクションに移動し、[+] ボタンをクリックします。
[新しいプロビジョニング プロファイルの登録] ページの [開発] セクションで、[iOS アプリ開発] を選択し、[続行] ボタンをクリックします。
[プロビジョニング プロファイルの生成] ページで、使用する [アプリ ID] を選択し、[続行] ボタンをクリックします。
[プロビジョニング プロファイルの生成] ページで、プロビジョニング プロファイルに含める証明書を選択し、[続行] ボタンをクリックします。
[プロビジョニング プロファイルの生成] ページで、アプリがインストールされるデバイスを選択してから、[続行] ボタンをクリックします。
[プロビジョニング プロファイルの生成] ページで、プロビジョニング プロファイル名を指定し、[生成] ボタンをクリックします。
[プロビジョニング プロファイルの生成] ページで、必要に応じて [ダウンロード] ボタンをクリックしてプロビジョニング プロファイルをダウンロードできます。
プロビジョニング プロファイルをダウンロードする
Apple Developer アカウントで開発プロビジョニング プロファイルを作成したら、Visual Studio を使用してアプリの署名に使用できるようにダウンロードします。
- Visual Studio で、[ツール] > [オプション] > [Xamarin] > [Apple アカウント] に移動します。
- [Apple Developer のアカウント] ダイアログでチームを選択し、[詳細の表示...] を選択します。
- [詳細] ダイアログで、新しいプロファイルが [プロビジョニング プロファイル] の一覧に表示されていることを確認します。 場合によって Visual Studio を再起動して、リストを最新の情報に更新する必要があります。
- [詳細] ダイアログで、[すべてのプロファイルのダウンロード] ボタンをクリックします。
プロビジョニング プロファイルは Windows にダウンロードされ、IDE がペアリングされている場合は Mac ビルド ホストにエクスポートされます。 詳細については、「iOS開発のための Mac とのペアリング」をご確認ください。
手動プロビジョニングを有効にする
開発プロビジョニング プロファイルを手動で作成し、Visual Studio にインストールした後、手動プロビジョニングを使用するように .NET MAUI アプリ プロジェクトを構成する必要があります。
ソリューション エクスプローラーで、.NET MAUI アプリ プロジェクトを右クリックし、[プロパティ] を選択します。 次に、[MAUI 共有]> [全般] タブに移動し、"アプリケーション ID" フィールドの値が、前に作成したアプリ ID の形式に対応していることを確認します。
プロジェクトのプロパティで、[iOS バンドル署名] タブに移動し、[スキーム] ドロップダウンで [手動プロビジョニング] が選択されていることを確認します。
[バンドル署名] プロパティで、[署名 ID] と [プロビジョニング プロファイル] を選択するか、両方を [自動] に設定します。 [署名 ID] と [プロビジョニング プロファイル] の両方が [自動] に設定されている場合、Visual Studio は Info.plist のバンドル識別子 (プロジェクト ファイルのアプリケーション ID プロパティの値と同じ) に基づいて署名 ID とプロビジョニング プロファイルを選択します。
デバイスにデプロイする
.NET MAUI アプリ プロジェクトでプロビジョニングを構成した後、Visual Studio でアプリをデバイスにデプロイできます。
Visual Studio で、IDE が Mac ビルド ホストとペアリングされていることを確認します。 詳細については、「iOS開発のための Mac とのペアリング」をご確認ください。
iOS デバイスが USB または WiFi 経由で Mac ビルド ホストに接続されていることを確認します。 ワイヤレス デプロイメントの詳細については、「Wireless deployment for .NET MAUI iOS apps」をご覧ください。
Visual Studio のツール バーで、[デバッグ ターゲット] ドロップダウンを使用して [iOS リモート デバイス] を選択し、Mac ビルド ホストに接続されているデバイスを選択します。
Visual Studio ツール バーで、緑色の [スタート] ボタンを押して、リモート デバイスでアプリを起動します。
Note
.NET MAUI iOS アプリをデバイスにデプロイする別の方法は、ホット再起動を使用することです。 ホット再起動を使用すると、Mac ビルド ホストを必要とせずに、Visual Studio から 64 ビットのローカル iOS デバイスに .NET MAUI アプリをデプロイできます。 詳細については、「ホット再起動を使用して iOS アプリをデプロイする」を参照してください。
アプリケーション サービスのプロビジョニング
Apple は、.NET MAUI iOS アプリ用にアクティブ化できる、「機能」として知られる複数のアプリケーション サービスを提供しています。 これらの機能は、プロビジョニング プロファイル (アプリ ID の作成時) と、.NET MAUI アプリ プロジェクトに追加する必要がある Entitlements.plist ファイルの両方で構成する必要があります。 機能の詳細については、「権利」と「機能」をご覧ください。
.NET MAUI