モバイル アプリのカスタマイズとビルド

ラップ機能の機能、その仕組み、およびその利点について既に理解されている方が対象となります。 この記事では、ラップ機能を使用して 1 つ以上のキャンバス アプリを単一のネイティブ モバイル アプリ パッケージとしてパッケージ化する方法について説明します。

前提条件

  • アプリを登録し、Microsoft Identity プラットフォームで API 権限を設定するには Azure portal にアクセスする必要があります。
  • 新しい組織とアプリを追加するには、Visual Studio アプリセンター にアクセスする必要があります。
  • モバイル ユーザーへの配布用にパッケージ化できるキャンバス アプリ (ソリューションに保存されています) が 1 つ以上必要です。
  • Android プラットフォームを使用するには、キーの生成を行い、アプリを登録する前に署名ハッシュの生成を実行する必要があります。 生成された署名のハッシュは、URI のリダイレクト を構成するために必要です。

お使いの環境で Power Apps 用ラップをインストールする

ラップ機能では、Microsoft IntuneMicrosoft App CenterGoogle Play Store および Apple Business Manager などの配信チャンネルを通して、カスタム ブランドされた Android と iOS ネイティブ モバイル アプリとして配布できるキャンバス アプリのモバイル バージョンを作成できます。

Power Apps のラップを使用するには、環境にインストールする必要があります。 Power Platform 管理センターDynamics 365 アプリ に移動して、Power Apps 用アプリを選択し、インストール オプションをクリックします。

Power Apps 用ラップをインストールします。

リストから環境を選択し、インストール ボタンをクリックします。

環境を選択しインストールを開始します。

注意

Power Apps 用のラップをインストールするには、環境に対する管理者権限が必要です。

ソリューションにキャンバス アプリを追加する

Power Apps のラップは、アプリがソリューションの一部である必要があります。 キャンバス アプリがまだソリューションの一部になっていない場合は、既存または新規のソリューションに追加します。 ソリューション セクションに移動し、ソリューションを選択、編集ボタンを押します。

ソリューションを選択します。

トップ メニューから + 既存の追加オプションを選択し、ドロップダウン リストでアプリ > キャンバス アプリを選択します。

上部メニューから既存のものを追加を選択します。

Oustide Dataverse タブを選択し、リストからアプリを選択します。 追加ボタンを押して、アプリをソリューションに追加します。

ソリューションに追加するアプリを選択します。

詳細情報: アプリをソリューションに追加する

アプリの登録

Azure ポータルを使用して、組織ディレクトリにアプリを新規登録します。 手順の詳細については、クイックスタート: Microsoft ID プラットフォームにアプリケーションを登録するを参照してください。

注意

シングル テナントとマルチテナントのどちらのお客様も、ラップを使用して、Power Apps キャンバス アプリに基づいて独自のモバイル アプリケーションを作成できます。

シングル テナント メーカーかマルチテナント メーカーかに関係なく、アプリでサポートされているアカウントの種類を選択してラップを有効にする場合、任意の Azure AD ディレクトリ - マルチテナント を含むオプションのいずれかを選択する必要があります。 次のアカウント タイプのいずれかを選択します。

  • 任意の組織ディレクトリ内のアカウント (任意の Azure AD ディレクトリ - マルチテナント型)
  • 任意の組織ディレクトリ内のアカウント (任意の Azure AD ディレクトリ - マルチテナント型) および個人の Microsoft アカウント (例: Skype、Xbox)

アプリの登録 - ラップでサポートされているアカウントの種類。

重要

  • ラップは現在、マルチテナントのアカウント タイプにのみ対応しています。 シングル テナントのアカウント タイプはまだ対応していません。 アカウントタイプの詳細: Microsoft ID プラットフォームのアカウント タイプ
  • URI のリダイレクト必要なフォーマットに確実に一致させるには、アプリ登録の作成中にURI のリダイレクトを作成しないでください。 アプリの登録が完了したら、アプリに移動して、認証 > +プラットフォームの追加を選択します。
  • 対象となるプラットフォーム (iOS, Android) ごとに、個別の URI のリダイレクトを作成する必要があります。

アプリが登録されたら、アプリケーション (クライアント) ID、Power Apps 内のラップ プロジェクトを構成する際に必要となる リダイレクト URI を指定します。 詳細: アプリケーションの登録

URI 形式のリダイレクト

iOS の場合、URI のリダイレクトにはバンドル ID のみが必要となります。

たとえば、iOS では:

  • バンドル ID: com.contoso.myapp
  • リダイレクト URI: msauth.com.contoso.myapp://auth

Android では、URI のリダイレクトにはパッケージ名署名ハッシュが必要です。 署名ハッシュを作成するには、キーを生成し、その後署名ハッシュを生成します。

たとえば、Android では:

  • パッケージ名: com.contoso.myapp
  • リダイレクト URI: msauth://com.contoso.myapp/<generated signature hash>

ご利用の環境で登録されたアプリを許可する

Power Platform 環境で Azure ポータルを使用して登録したアプリを許可する必要があります。 この手順を実行するには、最新版の管理者向けPower Apps PowerShell モジュールを使用し、アプリの登録手順で取得したアプリケーション (クライアント) ID を指定して、以下のコマンドレットを実行します:

Add-AdminAllowedThirdPartyApps -ApplicationId <App ID>

注意

  • このコマンドレットは、 管理者Power Apps PowerShell モジュールの 2.0.144 以降のバージョンで使用可能です。
  • このコマンドレットを実行するには、グローバル テナントの管理者権限が必要です。 このコマンドレットは、Azure AD に登録されたサードパーティのアプリケーションが Power Platform の接続を呼び出すことができるかを管理者が指定することを可能にします。

API アクセス許可の構成

前述の手順で Azure ポータルを使って登録したアプリに対して、以下の API 権限を追加・構成します:

  • Microsoft APIs
    • Dynamics CRM
  • 組織が使用している API
    • Azure API 接続
    • PowerApps サービス
    • Power BI (キャンバス アプリが Power BI データを使用する場合にのみ必要)
    • Microsoft モバイル アプリケーション管理 (モバイル アプリの配布に Microsoft Intune を使用する場合にのみ必要)

注意

組織が使用している API の下に権限が見つからない場合、必要に応じて次の PowerShell コマンドを実行し、再試行してください。

  • Azure API 接続許可がありません:
    Connect-AzureAD -TenantId <your tenant ID>
    New-AzureADServicePrincipal -AppId fe053c5f-3692-4f14-aef2-ee34fc081cae -DisplayName "Azure API Connections"
    
  • PowerApps サービス許可がありません:
    Connect-AzureAD -TenantId <your tenant ID>
    New-AzureADServicePrincipal -AppId 475226c6-020e-4fb2-8a90-7a972cbfc1d4 -DisplayName "PowerApps Service"
    

詳細な手順については、アプリ登録ポータルで権限をリクエストする を参照してください。

モバイル アプリ用の App Center コンテナーを作成する

このステップでは、App Center を使用して、モバイル アプリのアプリ コンテナーを作成します。 詳細情報: App Center コンテナー

ヒント

App Center の詳細については、Visual Studio App Center のドキュメント にアクセスしてください。

  1. App Center に移動します。

  2. 職場または学校のアカウントでサインインします。

  3. 既存の組織がない場合は、新しく追加する>新しい組織を追加するを選択して新しい組織を作成します。

  4. 左ペインの一覧から組織を選択します。

  5. アプリ > アプリの追加を選択します。

  6. アプリ名を入力します。

  7. アプリのリリース タイプを選択します。

  8. iOS アプリ用カスタム OS、または Android アプリ用 Android OS を選択します。

    注意

    プラット フォームごとに個別の App Center コンテナーを作成する必要があります。

  9. Android OSでは、React ネイティブに、プラットフォームを選択します。

    注意

    プラットフォームは、App Center 内のすべてのアプリが React ネイティブである必要があります。

    App Center アプリの構成。

  10. 新規アプリの追加を選択します。

  11. アプリの App Center URL をコピーします。これは後で Power Apps 内のラップ プロジェクトを構成する際に必要となります。

    例: https://appcenter.ms/orgs/Contoso-sales/apps/Sample-canvas-app-for-Android-OS/

    App Center の URL。

    詳細情報: App Center の URL

  12. アプリのアクセス用に新しい API トークンを作成し、後でキャンバス アプリのプロジェクトを設定するためにコピーします。 詳細情報: App Center の API トークン

    1. 左側の設定を選択します。
    2. App API トークンを選択します。
    3. 新しい API トークン を選択します。
    4. 説明を入力してください。
    5. フル アクセスを選択します。
    6. 新規 API トークンの追加を選択します。

      注意

      ダイアログ ボックスを閉じる前に、必ずトークンをコピーしてください。

    7. トークンをコピーし、後ででキャンバス アプリのラップ設定用に保存しておきます。 App Center トークン。

上記の手順を繰り返して、その他の OS タイプ用のアプリを作成します。

ラップ プロジェクトの作成

プライマリ キャンバス アプリを使用して、前のステップで構成した Microsoft ID プラットフォームと App Center の両方のアプリ情報を使用して、ラップ プロジェクトを作成します。 詳細情報: ラップ プロジェクトのビルド

ラップ プロジェクトを作成するには、Power Apps > アプリ > にアクセスし、ラップを選択し、このセクションで説明したラップ プロジェクトの詳細を入力します。 すべての詳細を入力したら、保存 > ビルドを選択してプロジェクトをビルドします。

選択されたプラットフォームに応じて、ビルド プロセスは、Android、iOS、または Google プラットフォーム用のパッケージを作成するための要求を待機します。

注意

ワークロードの量にもよりますが、ビルド作業には数時間かかる場合もあります。

ビルドが成功すると、App Center にモバイル アプリが表示されます。

表示名称

モバイル デバイスのホーム画面に表示されるモバイル アプリの表示名です。

セカンダリ アプリ

省略可能です。 同じモバイル アプリ パッケージ内にバンドルする追加のアプリです。 詳細情報: セカンダリ アプリプライマリ アプリ

アプリのプラットフォーム

選択したプラットフォームに基づいて、ラップ ビルド プロセスの出力タイプを決定します。 詳細情報: アプリのプラットフォーム

アプリのサインイン (プレビュー)

オプション Azure Keyvault URI は、必要な証明書を含む keyvault を設定することで、配布用のアプリの署名を自動化することができます。 詳細情報: 自動署名用に KeyVault を設定する

重要

  • これはプレビュー機能です。
  • プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能を公式リリースの前に使用できるようにすることで、顧客が一足先にアクセスし、そこからフィードバックを得ることができます。

バンドル ID

モバイル アプリを一意に識別するバンドル ID です。 たとえば、com.contoso.myapp などとします。 詳細情報: バンドル ID

アプリケーション (クライアント) ID

Microsoft ID プラットフォームにすでに登録されているアプリのクライアント ID です。 詳細情報: アプリケーション (クライアント) ID

リダイレクト URI

Microsoft ID プラットフォームに登録されたアプリのサインイン成功後にリダイレクトするために、 すでに作成した URL です。 詳細情報: リダイレクト URI

App Center の URL

iOS、Android、または Google Play Store のすでにコピーされた App Center の URLです。 詳細情報: App Center の URL

App Center API トークン

すでに作成済み。 詳細情報: App Center の API トークン

外観

アプリのアイコン、画面イメージ、色、テーマを構成します。

アプリの外観 (強調表示と番号表示) - 1 - アプリ アイコン、2- スプラッシュ画面イメージ、3- ようこそ画面イメージ、4- 背景塗りつぶし色、5- ボタン塗りつぶし色、6- ステータスバー文字テーマ、7 - 設定オプション。

iOS アプリのアイコン/ Android アプリのアイコン

iOS、Android、または Google Play Store のいずれかのプラットフォームに特化したアプリのアイコン画像。 アイコン画像のファイル サイズは、必要なピクセル数と一致する必要があります。 [1]

スクリーン画像

  • スプラッシュ スクリーンの画像

    読み込み中にモバイル アプリのスプラッシュ画面で使用される画像です。 提供されていない場合に使用され既定の画像です。 [2]

  • ようこそ画面の画像

    読み込み中にモバイル アプリのようこそ画面 (ログイン画面) で使用される画像です。 提供されていない場合に使用され既定の画像です。 [3]

カラー

  • 背景を塗りつぶす色

    ようこそ画面の背景に使用される 16 進数のカラーコードです。 [4]

  • ボタンを塗りつぶす色

    ボタンの色の塗りつぶしに使用される 16 進数のカラーコードです。 [5]

ステータス バーのテキスト テーマ

アプリ上部のステータスバーテキストの色です。 [6]

設定

アプリの設定に移動します。 シェイク ジェスチャを使用して利用することもできます。 カスタマイズはできません。 [7]

  • アプリ名 - アプリの名前の後にアプリのバンドル ID が続きます。
  • アプリ バージョン - アプリのバージョン番号です、自動的に生成されます。
  • プラットフォーム バージョン - Power Apps Mobile プラットフォームのバージョンです。
  • セッション ID -現在開いているセッションの ID です。
  • キャッシュの消去 - ラップされたアプリを既定の設定にリセットします。
  • アプリの設定 - 現在のパッケージの一部であるアプリのリストを表示します。 このリストからアプリを選択すると、アプリが使用するように構成されている可能性のあるコネクター情報など、アプリの詳細が表示されます。

自動署名用に KeyVault を設定する

前提条件

以下の手順で、KeyVault URI を構成します:

  1. 管理者としてテナントにログインし、次のスクリプトを実行して、1P AAD アプリケーション: 4e1f8dc5-5a42-45ce-a096-700fa485ba20 (WrapKeyVaultAccessApp) 用の Azure サービス プリンシパルを作成します。

    1. Connect-AzureAD -TenantId <your tenant ID>
    2. New-AzureADServicePrincipal -AppId 4e1f8dc5-5a42-45ce-a096-700fa485ba20 -DisplayName "Wrap KeyVault Access App"
  2. Key Vault が存在する予定のサブスクリプションで、上記のサービス プリンシパルにロールを追加します。 詳細な手順については、Azure サブスクリプションの投稿者としてユーザーを割り当てる を参照してください。 注: ステップ 3 では、Key Vault にアクセスするために最小限のロールのみが必要なため、データセットを選択できます。

  3. 既存の Key Vault: Azure portal を使用してキー コンテナーを作成する を作成またはアクセスします

  4. Key Vault のアクセスポリシーを追加します。

    Key Vault のアクセスポリシーを追加します。

  5. デバイスの表示に応じて、次のいずれかを実行します:

    • Android の場合、.pfxファイルを作成し、keyvault 証明書セクションにアップロードします。 詳細情報: キーの生成

      Android の証明書を作成する。

      注意

      証明書の名前は、タグ ステップに存在する必要があります。 また、パスワードは手順 2 で .pfx ファイルを作成する際に使用したストア パス パラメータで入力したパスワードと一致する必要があります。

    • iOS 向け:

      1. .cer をダブル クリックして Keychain Access アプリにインストールします。 詳細情報: 配布証明書を作成する
        証明書ファイルを右クリックし、エクスポート を選択して、ファイル形式 .p12 を選択し、ファイルを .p12 ファイルとしてエクスポートします。

        注意

        手順 4 で設定した .p12 のパスワードは、次の手順でキー コンテナーにアップロードする際に必要になります。

      2. プロビジョニング プロファイルを作成し、次のコマンドを実行して、base64 にエンコードします:

        • Mac: base64 -i example.mobileprovision
        • Windows: certutil -encode data.txt tmp.b64
      3. 前のステップで出力された base64 文字列を取得し、Keyvault シークレットにアップロードします。 次に、.p12 ファイルを取得し、Keyvault 証明書にアップロードします。

        iOS の証明書を作成する。

  6. iOS または Android の証明書を作成し、アップロードした後は、name を bundle id、value をアップロードした証明書の名前に対応させた 3 つのタグを追加します。

    タグの追加。

コード署名

コード署名プロセスは、Android および iOS デバイスで異なります。

モバイル アプリ パッケージのテストと配布

テストと配布については、App Center テスト配布を参照してください。

参照