Android開発

Androidアプリリンク検証 · 公開前に関連付けを確認

assetlinks.jsonを貼り、必要ならパッケージ名と署名証明書のSHA-256を指定して手動で検査します。

Androidアプリリンク検証

assetlinks.jsonの入力

ローカル検査結果

assetlinks.jsonを貼るか例を読み込んでください。

公開後の確認項目

以下はこのローカル検査では実測していません。

  • 各ホストのHTTPSの/.well-known/assetlinks.jsonで、リダイレクトせずapplication/jsonを返す。
  • Play Consoleのアプリ署名証明書のSHA-256と照合し、必要な署名鍵だけを登録する。
  • マニフェストのWeb intent filterでautoVerifyと対象ホスト・パスを確認する。
  • インストール済み端末でadb shell pm get-app-linksを実行し、更新後に再検証する。

JSON、パッケージ名、指紋はこのタブ内で検査し、ドメインには接続しません。

オプション

assetlinks.jsonを貼るか例を読み込んでください。

公開前のテストで、同じURLがある端末ではアプリ、別の端末ではブラウザーに開くことがあります。Androidアプリリンク検証を使えば、別々の宣言に散らばったパッケージ名と指紋を誤って一組と判断せずに済みます。

アプリリンクが開かないときのApp Links設定確認や、Play App Signingの証明書照合に使えます。SHA-256フィンガープリントの食い違いは見つけられますが、サイトの応答や実機の検証状態は別に確かめます。

Androidアプリリンク検証を使う理由

ファイル内の一致と公開後の確認を混同しません。

一つの宣言として照合

Androidアプリリンク検証では、別々の宣言にあるパッケージ名と指紋を組み合わせません。関係、パッケージ、SHA-256が同じandroid_app宣言にある場合だけ一致とします。

一つの宣言で関係、パッケージ名、証明書の指紋が結び付く様子と、分離した二つの宣言。

未確認の公開条件を残す

このAndroidアプリリンク検証はドメインへアクセスしません。HTTPS、所定のパス、JSONのContent-Type、リダイレクト、マニフェストと実機の検証を別のチェックリストに残します。

ローカルのJSON検査結果と、サーバーおよびAndroid端末で行う確認項目。

証明書と再検査の順序

01

使用中の署名鍵を選ぶ

Play配信ならPlay Consoleのアプリ署名鍵証明書のSHA-256を参照します。アップロード鍵やデバッグ鍵とは異なることがあります。入力欄はコロンの有無と英字の大小を吸収します。

02

変更後に手動で実行

JSON、パッケージ名、指紋を変更すると前回の結果は古くなり、コピーとダウンロードが無効になります。Ctrl/Cmd+Enterでも再検査でき、構文エラーには行と列が付きます。

03

結果を三段階で読む

DALの構造、同じ宣言での一致、端末の検証成功は別です。includeは通信せず未展開と表示します。画面の一覧が50件ずつでも、出力ファイルには全件を含みます。

宣言の構造と署名の照合

配列と対象を点検

assetlinks.json検証ではrelation配列、android_appまたはwebの対象を調べ、問題のある配列番号とフィールドを示します。includeは正当な参照として扱い、内容は取得しません。

SHA-256を比較

入力した指紋はコロンなしでも比較できます。ファイル内の指紋は大文字とコロン区切りの推奨形式を別途確認し、SHA-1を証明書のSHA-256として扱いません。

権限を宣言単位で確認

handle_all_urlsがあり、指定したパッケージと指紋も同じ宣言にあるときだけ一致します。ほかのDigital Asset Linksの関係は表示しますが、アプリリンク権限とはみなしません。

全件をローカル出力

現在の検査結果をJSONとしてコピーまたは保存できます。長い一覧は50件ずつ表示し、保存するレポートから項目を落としません。

この検査で分からないこと

公開サーバーにはアクセスしない
HTTPSの/.well-known/assetlinks.jsonが実際に返るか、リダイレクトやContent-Typeが適切かはここでは測れません。公開先の各ホストで確認してください。
ファイルのハッシュではない
必要なのはアプリ署名証明書のSHA-256です。JSONやAPKのハッシュ、SHA-1、パッケージ名だけでは署名の一致を確認できません。
includeと動的ルールは未評価
includeの参照先は取得しません。relation_extensionsにAndroid 15以降の動的ルールがあっても、マニフェストとの組み合わせやURLの優先順位は再現しません。
実機の状態は別途確認
autoVerify、インストール済みアプリの署名、キャッシュはJSONから判断できません。adbで端末のApp Links状態を調べてください。

Androidアプリリンク検証のよくある質問

アプリリンクがアプリではなくブラウザーで開くのはなぜですか?

JSONが読めても、公開URL、リダイレクト、署名、マニフェストまたは端末の検証状態が原因かもしれません。Androidアプリリンク検証でローカルの宣言を絞り込み、その後に公開先と実機を調べます。

古いAndroid端末ではアプリリンクはどう動作しますか?

古いAndroidではAndroid 15以降のdynamic_app_link_componentsは適用されません。必要なパスはマニフェスト側にも宣言し、対象バージョンの実機で動作を確認してください。

マニフェストのパス規則と動的ルールを併用できますか?

併用できますが、動的ルールはマニフェストで宣言した範囲を広げられません。このページは拡張フィールドの存在を示すだけで、パスの適用結果を計算しません。

assetlinks.jsonに書くSHA-256の指紋はどこで取得できますか?

Play App Signingを利用する配信版ではPlay Consoleのアプリ署名鍵証明書を参照します。ローカルビルドなら対応するキーストアをkeytoolで確認します。JSONファイル自体のハッシュではありません。

assetlinks.jsonの更新はいつ端末に反映されますか?

更新の取得時期は端末やキャッシュに左右されます。固定の反映時間をこのファイルから予測できません。公開後、adbの再検証コマンドを使い、端末の状態を確認してください。

宣言の判定に疑問がありますか?

Androidアプリリンク検証を始める

公開予定のJSONをAndroidアプリリンク検証に貼り、署名証明書を照合してから、チェックリストを使って公開先と実機を確かめてください。

入力内容はこのブラウザータブ内で処理します。