Android アプリで App Links(アプリリンク)を設定したのに、
リンクをタップしてもアプリが起動しないというトラブル、かなりよくあります。
しかもこの問題、
「実装ミス」「サーバー設定」「端末側の状態」など原因が多岐にわたり、
どこから確認すればいいのか分かりにくいのが厄介なところです。
この記事では、
App Links をタップしてもアプリが起動しないときの対処法・確認事項を、
実務で使う順番でまとめます。
まず前提:App Links と Intent Filter の違い
混同されがちですが、まずここを整理しておきます。
- Intent Filter(通常の deep link)
→ ブラウザ or アプリを選択するダイアログが出る - App Links
→ 正しく設定されていれば無条件でアプリが起動
「勝手にアプリが起動しない」場合、
App Links として成立していない可能性が高いです。
確認①:Intent Filter に autoVerify=true が付いているか
App Links として動作させるには、
Intent Filter に autoVerify=”true” が必須です。
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/path" />
</intent-filter>
これが無い場合、
ただの Deep Link 扱いになり、App Links は成立しません。
確認②:assetlinks.json が正しく配置されているか
App Links で最もハマりやすいのがここです。
以下の URL に、
assetlinks.json が配置されている必要があります。
![]()
Example Domain
よくあるミスは以下です。
- .well-known の場所が間違っている
- ファイル名が assetlinks.json になっていない
- HTTPS ではなく HTTP
確認③:assetlinks.json の中身が正しいか
assetlinks.json の内容が少しでも間違っていると、
自動検証は失敗します。
基本形は以下です。
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints": [
"AA:BB:CC:DD:..."
]
}
}
]
特に注意するポイント:
- package_name が完全一致しているか
- SHA-256 がリリース証明書のものか
- 余計なカンマや改行が入っていないか
確認④:デバッグビルドとリリースビルドの違い
実は App Links、
デバッグビルドでは正常に動かないことがあります。
理由としては、
- assetlinks.json がリリース証明書前提
- Play ストア経由での検証が必要なケース
「手元では動かないけど、本番では動く」
「逆に QA 端末でだけ動かない」
といった現象が起きやすいポイントです。
確認⑤:端末側で App Links が無効化されていないか
Android では、ユーザーが App Links を無効化できます。
以下の設定を確認してみてください。
- 設定 > アプリ > 対象アプリ
- 「対応リンク」「リンクを開く」
- すべて許可 or 有効になっているか
ここがオフだと、
実装が完璧でもアプリは起動しません。
確認⑥:すでにブラウザに関連付けられていないか
過去に、
- Chrome で「常にこのアプリで開く」
- 別アプリにリンクが紐づいている
状態になると、App Links が正しくても挙動が変わることがあります。
adb が使える場合は、以下で確認できます。
adb shell pm get-app-links com.example.app
よくある勘違いポイント
- Intent Filter があれば App Links だと思っている
- assetlinks.json を置いただけで動くと思っている
- デバッグビルドで検証し続けている
App Links は
アプリ・サーバー・端末の3点が揃って初めて成立します。
App Links が動かないときのチェックリスト
- autoVerify=true が付いているか
- assetlinks.json の配置パスは正しいか
- SHA-256 はリリース証明書のものか
- HTTPS でアクセスできるか
- 端末設定でリンクが無効化されていないか
まとめ
App Links は一度正しく理解すると、
「どこを見ればいいか」がはっきりします。
逆に言うと、
仕組みを知らないと永遠にハマり続けるポイントでもあります。
「リンクを踏んでもアプリが起動しない」
という問い合わせが来たときのために、
このチェックリストを持っておくとかなり楽になります。



コメント