1. ようこそ
このラボでは、デプロイ済みの既存の プログレッシブ ウェブアプリを、Google Play ストアで配信するためのアプリにラップします。
学習内容
- Bubblewrap を使用して Google Play ストア向けにプログレッシブ ウェブアプリをパッケージ化する方法
- 署名鍵の概要と使用方法
- Google Play のデベロッパー コンソールで新しいアプリを作成し、公開前にアプリをテストするためのテストリリースを設定する方法
- デジタル アセット リンクとは何か、ウェブアプリに追加する方法
必要な予備知識
- プログレッシブ ウェブアプリとは
- コマンドライン ツールを使用する方法
- 基本的な Bash シェルコマンド、または選択したシェルに変換する方法
必要なもの
- インターネット上で公開され、変更を加えることができるプログレッシブ ウェブアプリ
- Bubblewrap コマンドライン インターフェースがインストールされ、使用できる状態になっている
- Google Play デベロッパー アカウント
- 既存の署名鍵(Google Play でアプリをすでにリリースしている場合)
- テストに使用する Android または ChromeOS デバイス
保証の対象外
- PWA を Android デバイスまたは ChromeOS デバイスのみに制限する
- ChromeOS 向けの PWA とモバイル デバイス向けの Android アプリを同じアプリとしてデプロイする。
- PWA で Google Play のお支払いに関するポリシーに準拠する方法。
2. PWA をバブルラップする
Bubblewrap は、プログレッシブ ウェブアプリを Android App Bundle にラップする作業を、いくつかの CLI コマンドを実行するのと同じくらい簡単にするツールです。これは、PWA を信頼できるウェブ アクティビティとして起動する Android プロジェクトを生成することで実現されます。
まず、プロジェクトを保存するディレクトリを作成し、そのディレクトリに移動します。
$ mkdir my-pwa && cd my-pwa
次に、Bubblewrap コマンドライン ツールを実行して、Google Play にアップロードする Android App Bundle の構成と Android プロジェクトを生成します。
$ bubblewrap init --manifest=https://my-pwa.com/manifest.json
ここでは、Bubblewrap は PWA のウェブアプリ マニフェスト ファイルの場所で初期化されています。これにより、ウェブアプリ マニフェストからデフォルト構成が生成され、デフォルト構成を変更できるコンソール内ウィザードが起動します。ウィザードに沿って、ツールで生成された値を変更します。
署名鍵
Google Play ストアでは、アプリ パッケージをアップロードする際に、証明書(署名鍵と呼ばれることもあります)でデジタル署名する必要があります。これは自己署名証明書であり、HTTPS でアプリケーションを配信するために使用される証明書とは異なります。
Bubblewrap は、アプリケーションの作成時に鍵のパスを尋ねます。アプリケーションに既存の Google Play ストアの掲載情報を使用している場合は、その掲載情報で使用されている鍵と同じ鍵のパスを追加する必要があります。
既存の署名鍵がなく、Google Play ストアで新しい掲載情報を作成する場合は、Bubblewrap が提供するデフォルト値を使用して、新しい鍵を作成できます。
Bubblewrap の出力
Bubblewrap プロジェクトを初期化してウィザードを完了すると、次の項目が作成されます。
- twa-manifest.json - Bubblewrap ウィザードで選択した値を反映したプロジェクト構成。このファイルは、必要に応じて Bubblewrap プロジェクト全体を再生成するために使用できるため、バージョン管理システムで追跡することをおすすめします。
- Android プロジェクト ファイル - ディレクトリ内の残りのファイルは、生成された Android プロジェクトです。このプロジェクトは、Bubblewrap ビルドコマンドで使用されるソースです。必要に応じて、バージョン管理システムでこれらのファイルを追跡することもできます。
- (省略可)署名鍵 - Bubblewrap に署名鍵の作成を依頼した場合、鍵はウィザードに記載されている場所に保存されます。鍵は安全な場所に保管し、アクセスできるユーザーの数を制限してください。これは、Play ストアのアプリがあなたのものであることを証明するために使用されます。
これらのファイルがあれば、Android アプリケーション バンドルをビルドするために必要なものがすべて揃います。
Android App Bundle をビルドする
Bubblewrap の初期化コマンドを実行したディレクトリ内で、次のコマンドを実行します(署名鍵のパスワードが必要です)。
$ bubblewrap build
ビルドコマンドは、次の 2 つの重要なファイルを生成します。
- app-release-bundle.aab - PWA の Android App Bundle。このファイルを Google Play ストアにアップロードします。
- app-release-signed.apk -
bubblewrap install
コマンドを使用して開発デバイスにアプリケーションを直接インストールするために使用できる Android パッケージ形式。
3. 試してみる - Bubblewrap
それでは、実際に試してみましょう。前のステップで学習した内容を使用して、次のことを試してください。
- 生成された Android プロジェクトを保持するディレクトリを作成します。
- Bubblewrap と PWA のウェブアプリ マニフェストを使用して、そのディレクトリを初期化します。
- 新しい署名鍵を生成するか、既存の署名鍵がある場合はそれを再利用します。
- 生成された Android プロジェクトから Android App Bundle をビルドします。
4. Google Play ストアにアプリを追加する
PWA の Android App Bundle が作成されたので、Google Play ストアにアップロードしましょう。デベロッパー アカウントの登録が完了したら、Google Play Console にアクセスしてログインし、開始できます。
アプリを作成
ログインすると、すべてのアプリが表示された画面が表示されます。上部にある [アプリを作成] ボタンをクリックすると、次の画面が表示され、新しい Android アプリの掲載情報を作成する手順が表示されます。
アプリ名、デフォルトの言語、アプリとゲームのどちらであるか、無料か有料か、申告など、入力するフィールドがいくつかあります。宣言に同意しないとアプリを作成できないため、同意する前に必ずお読みになり、内容を理解してください。
すべての情報を入力して、フォームの下部にある [アプリを作成] ボタンをクリックすると、新しいアプリのダッシュボードに移動します。ダッシュボードには、アプリの設定、テストの開始、リリースのために完了する必要があるタスクのチェックリストが表示されます。
内部テストを設定する
内部テストは、審査を受けずに、選択した信頼できるテスターのグループにアプリを迅速にリリースするのに最適な方法です。[今すぐテストを開始] チェックリストでタスクを確認し、[テスターを選択] を選択します。
そのタスクをクリックすると、[内部テスト] ページに移動します。ここで、アプリのテスト設定を管理します。サイドバーの [リリース] メニューにある [テスト] セクションを開くと、このページに再び移動できます。まず、アプリをテストするテスターのメーリング リストを作成します。そのためには、ページの [テスター] セクションにある [メーリング リストを作成] リンクをクリックします。ポップアップが開き、メールリストを作成できます。
このポップアップで、メールリストに名前を付け、メールアドレスを手動で入力するか、使用するメールアドレスの CSV をアップロードします。完了したら、[変更を保存] ボタンを押します。作成済みのメールリストに戻って、必要に応じてメールアドレスを追加または削除できます。テスターを追加したら、テストリリースを作成します。ページ上部にある [新しいリリースを作成] ボタンをクリックします。
テスト版リリースを作成する
[新しいリリースを作成する] ボタンをクリックすると、いくつかのセクションが表示されます。1 つ目の [アプリの完全性] では、アプリの署名鍵の管理方法を選択します。デフォルトのオプションは、Google に署名鍵の管理を任せることです。このオプションは、セキュリティが確保され、アップロード鍵を紛失した場合でもアプリを復元できるため、推奨されています。
Play アプリ署名
アプリのアップロードと最終確認
署名鍵の管理方法を選択すると、リリースに App Bundle をアップロードするよう求められます。そのためには、Bubblewrap が生成した app-release-bundle.aab ファイルをフォームにドラッグ&ドロップします。リリースを完了するには、残りのリリース詳細を入力して [保存]、[リリースのレビュー]、[内部テストとしての公開を開始] の各ボタンをクリックし、リリースを開始します。これで、アプリが内部テスターに公開されます。[内部テスト] ページの [テスター] タブに戻ると、テスターと共有してアプリにアクセスできるようにするためのリンクをコピーできます。
5. 試してみる - アプリを作成する
それでは、実際に試してみましょう。前のステップで学習した内容を使用して、次のことを試してください。
- Google Play Console で PWA の新しいアプリを作成します。
- アプリの内部テストを設定し、自分をテスターとして追加します。
- App Bundle をアップロードして、アプリのテストリリースを作成します。
- テストリンクを使用して、Android または ChromeOS デバイスに Play ストアからアプリをインストールします。
6. デジタル アセット リンク
Google Play で PWA をテストしたときに、全画面表示で実行されないことに気づくかもしれません。これは、Digital Asset Links ファイルを使用してサイトの所有権をまだ確認していないためです。Bubblewrap は Android アプリケーション バンドルを構成してビルドできますが、ウェブ アプリケーションを更新してリンクを完了する必要があります。
アプリの SHA-256 フィンガープリントを取得する
PWA の Digital Asset Links を設定するには、ユーザーがスマートフォンで受け取るパッケージの署名に使用される証明書の SHA-256 フィンガープリントが必要です。
Play アプリ署名を使用する場合
リリースを作成する際にアプリの Play アプリ署名を設定した場合(以前は推奨されていました)、SHA-256 フィンガープリントは Google Play Console で確認できます。この証明書は、アプリのアップロードに使用する証明書とは異なります。フィンガープリントを取得するには、Google Play Console のアプリ内で、[リリース] -> [設定] -> [アプリの完全性] に移動します。[アプリ署名鍵証明書] には、いくつかのオプションが表示されます。[SHA-256 証明書のフィンガープリント] の値をコピーします。
Play アプリ署名を使用しない場合
Play アプリ署名を無効にした場合、最終的なアプリの署名に使用される鍵は、アプリを Google Play Console にアップロードする際に使用する鍵と同じになります。Java の keytool を使用して、フィンガープリントを抽出できます。
$ keytool -list -v \
-keystore <keystore-file-path> \
-alias <key-alias> \
-keypass <key-password> \
-storepass <store-password> | grep SHA256
$ SHA256: BD:92:64:B0:1A:B9:08:08:FC:FE:7F:94:B2...
これを使用するには、署名鍵のパスと関連するパスワードを知っておく必要があります。SHA256 鍵の 16 進数値をコピーします。
Digital Asset Links ファイルを作成する
Bubblewrap は、取得した署名フィンガープリントを管理し、正しいデジタル アセット リンク ファイルを生成できます。Bubblewrap でフィンガープリントを追加するには、PWA を Bubblewrap でラップするで作成した同じディレクトリ内で次のコマンドを実行します。<fingerprint>
は、前の手順でコピーしたフィンガープリントに置き換えます。
$ bubblewrap fingerprint add <fingerprint>
このコマンドを実行すると、指紋がアプリの指紋リストに追加され、assetlinks.json ファイルが生成されます。このファイルを、PWA と同じオリジンの .well-known ディレクトリにアップロードします。
7. 試してみる - デジタル アセット リンク
それでは、実際に試してみましょう。前のステップで学習した内容を使用して、次のことを試してください。
- アプリの SHA-256 フィンガープリントを見つけます。
- アプリのデジタル アセット リンク ファイルを生成します。
- デジタル アセット リンク ファイルを PWA にアップロードします。
- API とテストアプリを使用して、デジタル アセットリンク ファイルが正しく設定されていることを確認します。
8. 理解度テスト
終了する前に、以下の質問に回答して、知識が身に付いたかどうか確認しましょう。答えを見ないでください。
Bubblewrap で Android プロジェクトを生成した後、サリーは生成された ______ ファイルをバージョン管理システムにコミットし、必要に応じて再ビルドできるようにします。
Jack は、QA チームに PWA Android アプリのテストを依頼しようとしています。Jack は、Android App Bundle を内部テストトラックに ______ します。
Oogie Boogie の PWA Android アプリが全画面表示で実行されていません。この問題を解決するには、______ の SHA-256 証明書フィンガープリントを取得し、PWA と同じオリジンにある ______ の Digital Asset Links ファイルにアップロードします。
9. 理解度テスト - 回答
知識チェックの質問の答え
- Bubblewrap で Android プロジェクトを生成した後、サリーは生成された ______ ファイルをバージョン管理システムにコミットし、必要に応じて再ビルドできるようにします。
- 回答: twa-manifest.json
- セクション: PWA を Bubblewrap でラップする
- Jack は、QA チームに PWA Android アプリをテストしてもらおうとしています。彼は Android App Bundle を内部テストトラックに ______ します。
- 回答: signs and uploads
- セクション: Google Play ストアにアプリを追加する
- Oogie Boogie の PWA Android アプリが全画面表示で実行されていません。この問題を解決するには、______ の SHA-256 証明書フィンガープリントを取得し、PWA と同じオリジンにある ______ の Digital Asset Links ファイルにアップロードします。
- 回答: 署名鍵、/.well-known/assetlinks.json
- セクション: デジタル アセット リンク
10. 完了
これで、これで、PWA を Google Play ストアに追加する方法を習得できました。
準備ができたら、次の手順を試してみてください。
- アプリの製品版リリースを作成する
- ChromeOS 専用リリースや、モバイル向けの Android アプリと ChromeOS 向けの PWA を含むリリースなど、アプリをリリースするためのその他のオプションについて詳しく説明します。
- アプリの Google Play Billing を設定し、PWA に実装して、バックエンドに実装する方法を学習します。
よろしくお願いいたします。