Android や Google Play を初めて利用するウェブ デベロッパーの方は、 注意が必要です。これに関しては、すでに多くのリソースやドキュメントが存在しています(Android の ここでは、重要なコンセプトと Bubblewrap との関係について説明します。
アップロード鍵と署名鍵
バブルラップを使用して Android App Bundle(AAB)を生成する予定がある場合(注: 8 月から) 2021 年、Google Play ではすべての新規アプリで Android App Bundle 形式を使用することが義務付けられます)。 アップロードして Google Play に公開するための APK を使用するには、署名鍵でアプリに署名する必要があります。Google Google Play では、これを 2 つの方法で処理できます。
- Play アプリ署名(強く推奨): Google がアプリの署名鍵を管理、保護します。
できます。APK の配信時に署名する際にこの鍵を使用します。Play アプリ署名では 2 つの鍵を使用します。アプリ
署名鍵」Google が管理する鍵と「アップロード鍵」保持し、維持する必要がある
非公開にできます。アップロード鍵を使用してアプリに署名し、Google Play Console にアップロードします。この
アップロード鍵を紛失した場合や不正使用された場合に、次の方法でリセットできます。
Play サポートチームにお問い合わせください。現在 Google Play は
を使用すると、アプリを AAB または APK としてアップロードできます。
<ph type="x-smartling-placeholder">
- </ph>
- Android App Bundle(AAB): AAB を Google Play Console にアップロードした場合、APK のビルドと生成は Google Play ストア。ユーザーがアプリをダウンロード、インストールすると、Google Play からアプリが配布されます 署名済みの APK としてダウンロードされます。そのため、APK の署名も Google Play。そのため、デフォルトでは、アプリを AAB として Google Play Console にアップロードすると、 Play アプリ署名を使用する必要があります。
- APK: APK では、Play アプリ署名にオプトインするかどうかを選択できます。Play アプリへのオプトイン 署名鍵のセキュリティを強化するため、署名することを強くおすすめします。前述のとおり リリースされます。まもなく Google Play では、新しいアプリはすべて AAB 形式でアップロードすることが義務付けられます。そのため、 おすすめします。
- 独自の署名鍵を管理する: 独自の鍵を管理することを選択し、Play アプリを有効にしていない場合 署名。アプリの署名鍵については、すべてあなたが責任を負います。Play アプリ署名とは異なり、 鍵を紛失してもリセットできません。そのため、アプリの署名鍵を紛失すると、 アプリをアップデートできなくなります。
bubblewrap init
の設定中に、[署名鍵の情報(5/5)] が表示されたら、
[Key store location] と [Key name] を入力するか、デフォルト値をそのまま使用するよう求められます。「
デフォルトのキーストアの場所は、プロジェクト ディレクトリ内の android.keystore
ファイルです。
キー名は android
です。Bubblewrap がその鍵名を持つ既存のキーストアを
自動的にアカウントが作成され、パスワードの入力を求められます。パスワードをメモする
ビルドプロセス(bubblewrap build
)で必要になるため、ここでは
鍵を作成します。Play アプリ署名にオプトインしている場合は、Bubblewrap が設定する署名鍵が
生成され、アプリへの署名に使用された鍵が「アップロード鍵」になります。
生成された鍵を署名鍵またはアップロード鍵としてバブルラップします。鍵を保護し、非公開にしておく必要があります。
バージョン管理に commit することはおすすめしません。代わりに、権限を与えられた人の数を制限してください。
必要ありません。
デジタル アセット リンク;Digital Asset Links(#適宜文脈に応じて)
ウェブサイトと Android の関係を宣言するには、デジタル アセット リンクが必要です
。Bubblewrap によって生成された Android アプリが適切に検証され、
(Chrome カスタムタブの代わりに)信頼できるウェブ アクティビティを表示するには、適切なキーを
assetlinks.json
ファイル。ウェブサイト(.well-known/assetlinks.json
)にアップロードします。
(ルートからの相対パス)。assetlinks.json
ファイルは次の形式にする必要があります。
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
}]
SHA256 証明書フィンガープリントを取得する
assetlinks.json
ファイルを作成するには、SHA 256 証明書に関連付けられた
をアプリの署名鍵に置き換えます。重要なのは、サービス アカウントに関連付けられる
署名鍵とアップロード鍵が異なります。重要な点は、
特に、アプリが Chrome カスタムタブ(
ブラウザのアドレスバーに表示されます)。その場合、assetlinks.json
ファイルに
フィンガープリントを作成します。
署名証明書とアップロード証明書の両方のフィンガープリントを assetlinks.json に含めると便利です。
ローカルでアプリをデバッグしやすくなります詳細については、後述のキーを追加するをご覧ください。
assetlinks.json
ファイルに両方の鍵を含める方法をご確認ください。
フィンガープリントを取得する方法はいくつかあります。これについては、次のセクションで詳しく説明します。 いずれも同じフィンガープリントを提供するため、最もよく使用されている方法を自由に選択してください。 便利です。
Google Play Console から
Play アプリ署名にオプトインするかどうかによって、1 つまたは 2 つの鍵を使用できます。取得するには、 適切な SHA256 フィンガープリントを作成します。
- Google Play Console に移動
- 目的のアプリを選択します。
- 左側のナビゲーション メニューの [リリース] で、[設定] ->アプリの完全性。
- 適切な鍵の SHA256 をコピーします。
署名鍵: [アプリ署名鍵の証明書] の SHA256 フィンガープリントをコピーします。この Google Play ストアからアプリをダウンロードした場合、指紋はアプリに対応します。 Google Play は署名鍵で署名されたアプリを配信します。
鍵をアップロード: [鍵の証明書をアップロード] の SHA256 フィンガープリントをコピーします。この ローカルに(USB 経由で ADB 経由で)インストールした場合、フィンガープリントはアプリに対応します。 例です)。(ローカルマシン上の)その APK は Bubblewrap によってビルドされたため、署名された (
init
の設定時に)作成された鍵。なお、このスライドは ローカルにインストールされたアプリの署名鍵ではなく、実際には「アップロード鍵」になります。1 回 Play を通じてアプリを公開できます
keytool
経由
keytool はキーで、 使用することもできます。keytool を使用して、キーに関連付けられた SHA 256 フィンガープリントを 生成された APK または AAB バブルラップ。このフィンガープリントはローカルの署名鍵用であり、 Google Play にアプリをアップロードして Play アプリ署名にオプトインすると、この鍵が「アップロード鍵」になります。
keytool -printcert -jarfile [path to APK or AAB] | grep SHA256
アセットリンク ツールを使用する
アプリの正しいデジタル アセット リンク ファイルを取得するもう 1 つの方法は、アセットリンク ツールを使用することです。
- Google Play ストアからアセットリンク ツールをインストールします。
- 同じデバイスで、Google Play ストアからアプリをダウンロードするか、ローカルにインストールします。
- アセットリンク ツール アプリを開くと、アセットにインストールされているすべてのアプリが
パッケージ名で識別されます。先ほど選択したアプリケーション ID でリストをフィルタします。
bubblewrap init
を選択し、そのエントリをクリックします。 - アプリの署名と生成されたデジタル アセット リンクが記載されたページが表示されます。[ 下部のコピーボタンや共有ボタンを使って、自由にエクスポートできます(Google Keep への保存、 自分宛てにメールで送信してください)。
署名鍵やアップロード鍵の場合と同じ考え方が当てはまります。 Google Play ストアのアセットリンク ツールを使用すると、アプリの署名鍵のフィンガープリントを取得できます。条件 アプリをローカルマシンから直接インストールした場合、フィンガープリントは鍵用 バブルラップが生成されました。
アセットリンク ファイルにアクセスできるようにする
アップロードが完了したら、ブラウザでアセットリンク ファイルにアクセスできることを確認します。
アップロードしたファイルに https://example.com/.well-known/assetlinks.json
が解決されることを確認します。
Jekyll ベースのウェブサイト
ウェブサイトが Jekyll(GitHub Pages など)によって生成された場合は、次の行を追加する必要があります。
.well-known
ディレクトリが出力に含まれるようにします。
GitHub のヘルプで、このトピックの詳細を確認できます。
サイトのルートに _config.yml
というファイルを作成します(すでに存在する場合は追加します)。
次のように入力します。
# Folders with dotfiles are ignored by default.
include: [.well-known]
鍵の追加
デジタル アセット リンク ファイルには複数のアプリを含めることができ、アプリごとに あります。 たとえば、2 つ目のキーを追加するには、 アセットリンク ツールを 2 番目のエントリとして追加します。 この JSON を解析する Chrome のコードは非常に厳格であるため、誤って カンマで区切られます
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
},{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
}]
トラブルシューティング
デジタル アセット リンクの検証に失敗した理由が Chrome に記録されます。ログは
adb logcat
がインストールされている Android デバイス。
Linux または Mac で開発している場合は、接続されたデバイスから関連するログを表示できます。
これを次のように置き換えます。
> adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links
たとえば、「Statement failure matching fingerprint.
」というメッセージが表示された場合は、
アセットリンク ツールを使用してアプリの署名を確認し、assetlinks.json
の署名と一致することを確認する
表示されます。