Instant 対応 App Bundle を作成する

Google Play Instant 版アプリを作成する際は、Android App Bundle の一部として組み込みます。このようなバンドルのことを「Instant 対応 App Bundle」と呼びます。このドキュメントでは、Instant 対応 App Bundle 用の開発環境をセットアップする方法と、Instant 対応 App Bundle を設定、ビルド、テスト、公開する方法について説明します。

既存の Instant App プロジェクトがサポート終了済みの機能プラグイン(com.android.feature)を使用している場合は、Android App Bundle に対応できるように Instant App を移行するをご覧ください。

開発環境をセットアップする

App Bundle 内で Instant 版アプリを提供するには、Google Play Instant Development SDK にアクセスする必要があります。SDK をインストールするには、次のいずれかの方法を使用します。

  • Android Studio 3.3 以降をインストールします。Android Studio を開いた後、SDK Manager の [SDK Tools] タブから Google Play Instant Development SDK をダウンロードします。
  • コマンドラインからインストールします。

        cd path/to/android/sdk/tools/bin && \
          ./sdkmanager 'extras;google;instantapps'
        

また、ローカルで Instant 版アプリをテストする場合は、物理デバイスまたは仮想デバイスにアクセスします。

Instant 版アプリ向けにプロジェクトを設定する

Google Play Instant に対応するには、Instant 対応 App Bundle を慎重に設定する必要があります。以下のセクションでは、その注意事項について説明します。

Instant 対応アプリ モジュール

App Bundle が Instant 版に対応していることを宣言するには、次のいずれかの方法を使用します。

  • Android Studio 内で新しいプロジェクトを作成する場合は、[Configure your project] ステップにおいて、[This project will support instant apps] チェックボックスをオンにします。
  • 既存の App Bundle に含まれるモジュールがベース モジュールだけの場合は、次の宣言をモジュールのマニフェストに追加することで、すぐに App Bundle を Instant 対応にすることができます。

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
  • 既存の App Bundle に含まれるモジュールが複数ある場合は、Instant 対応の動的機能モジュールを作成します。このプロセスにより、アプリのベース モジュールも Instant 対応になるため、アプリ内で複数の Instant エントリ ポイントをサポートできるようになります。

サポートされているパーミッション

Instant 対応 App Bundle で使用できるパーミッションは、以下のリストのものに限られます。

インストールされたアプリにアクセスする

以下のいずれかを満たさない限り、デバイスにインストールされたアプリとインタラクションすることはできません。Instant 版アプリを開発する際は、この点に注意してください。

  • インストールされたアプリ内の 1 つまたは複数のアクティビティで android:visibleToInstantApps 要素が true に設定されている(この要素は Android 8.0(API レベル 26)以降をターゲットとしているアプリで利用可能です)。
  • インストールされたアプリに CATEGORY_BROWSABLE を含むインテント フィルタが含まれている。
  • Instant 版が ACTION_SENDACTION_SENDTOACTION_SEND_MULTIPLE のいずれかのアクションを使用してインテントを送信している。

実行環境

Google Play Instant は、特別なタイプの SELinux サンドボックス内で Instant 対応 App Bundle を実行することで、セキュリティを強化しています。この環境に対応するには、Instant 対応 App Bundle 内で次の設定を行う必要があります。

App Bundle をビルドする

Android Studio またはコマンドライン インターフェースを使用して、Instant 対応 App Bundle をビルドできます。

Android Studio

Android Studio で、[Build] > [Build Bundle(s) / APK(s)] > [Build Bundle(s)] を選択すると、App Bundle をビルドできます。プロジェクトのビルド方法については、プロジェクトをビルドするをご覧ください。

コマンドライン インターフェース

Gradle を使用してコマンドラインから App Bundle をビルドすることもできます。このビルドを実行した後は、次のコマンドを実行して、Instant 版アプリのサニティー チェックを実行してください。

    ia check app-artifact
    

アプリのアーティファクトとしては、ZIP ファイルや App Bundle、少なくとも 1 つの Instant 版アプリを含む APK のリストを使用できます。

Instant 版アプリをテストする

Instant 対応 App Bundle を公開する前に、次のいずれかの場所から Instant 版アプリをテストして、機能を検証することができます。

Android Studio

Android Studio を使用してローカルマシンでアプリの Instant 版をテストする手順は次のとおりです。

  1. テストデバイスにアプリのインストール版がインストールされている場合は、アンインストールします。
  2. Android Studio で、[Run/Debug Configurations] ダイアログの [General] タブに表示されるインストール オプションの中から、[Deploy as instant app] チェックボックスをオンにします。
  3. メニューバーで [Run] > [Run] を選択するか、ツールバーの [Run]()をクリックして、アプリの Instant 版をテストするデバイスを選択します。選択したテストデバイス上にアプリの Instant 版がロードされます。

コマンドライン インターフェース

コマンドライン インターフェースを使用してローカルマシンでアプリの Instant 版をテストする手順は次のとおりです。

  1. テストデバイスにアプリのインストール版がインストールされている場合は、アンインストールします。
  2. 次のコマンドを入力することで、テストデバイス上で Instant App をサイドロードして実行します。
    ia run output-from-build-command
    

内部テスト版トラック

Play ストアやウェブサイトのバナーからアプリの Instant 版をテストするには、Play Console の内部テスト版トラックにアプリを公開します。手順は次のとおりです。

  1. Play Console に App Bundle をアップロードするの手順に沿って、App Bundle をアップロードします。
  2. アップロードしたバンドルを内部テスト版トラックにリリースする準備を行います。詳細については、リリースを準備してロールアウトするをご覧ください。
  3. デバイス上で内部テスター アカウントにログインして、次のいずれかのサーフェスから Instant 版アプリを起動します。

    • アプリの Play ストア掲載情報から [今すぐ試す] ボタンを押します。
    • アプリのウェブサイトのバナーにあるリンクをタップします。

App Bundle を製品版トラックに公開する

Instant 対応 App Bundle を公開する手順は次のとおりです。

  1. まだ行っていない場合は、リリースキーを使用して App Bundle に署名し、App Bundle を Play Console にアップロードします。
  2. Play Console で、[Release management] > [Android Instant Apps] を開いて、[instant app production] トラックに移動します。
  3. [Update from Library] を選択して、アップロード済みの Instant 対応 App Bundle を選択します。

参考リンク

Instant 版アプリや Android App Bundle の作成方法については、以下のリソースをご覧ください。

動画: Instant 版アプリをバンドルする
この Android Dev Summit 2018 セッションは、Android App Bundle に Instant 版アプリを追加する方法について説明しています。
動画: Android App Bundle を使用して小さなアプリを公開する
App Bundle を活用してアプリを迅速に開発し、ユーザー向けに小さな APK を作成する方法について説明しています。
コードラボ: 初めての Android App Bundle
Android App Bundle を作成して機能を追加するための手順を詳細に説明しています。
Android App Bundle 形式
bundletool コマンドライン プログラムを使用して、アプリのコードやリソースから App Bundle を整理する方法について説明しています。