assetlinks.json とmanifest、第三者アプリなら端末の対応リンク設定と通常URLを分けて確認します。まず通常URLを確認する
Chromeで元HTTPS URLが目的ページを表示できるか確認します。元URLが無効ならApp Links以前の問題です。短縮URLの場合は最終遷移先hostも確認します。
元URL・アプリ導入状態・ブラウザ・リンク形式の共通確認から始めたい場合は、ディープリンクが開かない時の共通切り分けを先に確認してください。
Android 12以降のWebリンク処理
Android Developersは、Android 12以降でgeneric web intentがアプリへ直接解決されるには、対象ドメインについてアプリが承認されていることが重要だと説明しています。未検証のHTTP/HTTPSリンクはデフォルトブラウザへ解決される場合があります。
assetlinks.json
自社アプリのApp Linksなら、対象ドメインの https://example.com/.well-known/assetlinks.json が取得でき、package名・SHA-256署名fingerprintなどが実アプリと一致するか確認します。
複数hostをmanifestに含める場合、各hostの検証状態を確認します。
端末の「対応リンク」設定
Android端末では、アプリごとに対応リンクを開く設定をユーザーが変更できる場合があります。Xなど第三者アプリのリンクだけChromeへ開く場合、対象アプリの「デフォルトで開く」「対応リンクを開く」に相当する項目を確認します。
設定名称はAndroid版本やメーカーで異なるため、特定の画面名を唯一の手順として断定しません。
Intent URLの場合
intent:// URLはApp Linksとは別です。対象package/schemeを解決できるか、ユーザー操作から起動しているか、browser_fallback_url が正しいかを確認します。Chromeはユーザー操作なしの起動や特定redirect経路で外部アプリを開かない場合があります。
SNS内ブラウザの場合
Chromeでは開くのにInstagramやLINEなどアプリ内ブラウザでは開かないなら、Android App LinksだけでなくWebView側の遷移処理を疑います。アプリ内ブラウザの共通切り分けを参照してください。
確認順
- 元HTTPS URLをChromeで確認。
- 対象アプリがインストール済み。
- 自社アプリならintent filter/assetlinks.jsonを確認。
- Android 12+の検証状態を確認。
- 端末の対応リンク設定を確認。
- Intent URLならpackage/scheme/fallbackを確認。
- SNS内ブラウザとChromeを分けてテスト。
OS以外の対応差も確認
製品では直接生成と保存経路が一致しないサービスがあります。製品固有の確認は対応範囲へ、一般的な原因切り分けは共通トラブルシューティングへ進めます。
対応URLと機能範囲を見る共通の原因を確認する