使用applicationIdSuffix后Android Deeplink失效问题求助
解决Debug版本Deeplink失效问题
针对你遇到的Debug版本添加applicationIdSuffix后Deeplink无法工作的问题,按以下步骤排查修复:
1. 修正关联文件中的非法指纹
你的assetlinks.json里第一个SHA256指纹包含非法字符6Q(SHA256仅允许0-9、A-F字符),这会直接导致系统验证失败。删除或替换这个无效指纹,确保所有指纹格式合法。
2. 确保Debug签名指纹正确配置
Debug版本默认使用Android Studio自带的debug keystore,你需要获取该签名的SHA256并添加到关联文件中:
- 执行命令获取Debug指纹:
Windows环境替换路径为keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass androidC:\Users\<你的用户名>\.android\debug.keystore - 将获取到的SHA256指纹添加到
assetlinks.json的sha256_cert_fingerprints数组中,确保对应Debug包名com.app.test.debug。
3. 验证关联文件的可访问性
确保assetlinks.json放置在网站的.well-known目录下,且能通过HTTPS正常访问:
- 访问
https://<你的域名>/.well-known/assetlinks.json,确认返回的JSON格式正确、无语法错误,且包名、指纹与Debug版本完全匹配。 - 清除浏览器缓存,避免读取旧的无效文件。
4. 检查系统验证状态
使用adb命令查看Deeplink的验证状态:
adb shell dumpsys package domain-preferred-apps
找到你的域名*.app.test.com,查看对应的status是否为verified。如果是unverified,说明关联文件配置仍有问题,回到前面步骤排查。
5. 确认Manifest配置无差异
你的AndroidManifest中的intent-filter配置全局生效,Debug版本可直接继承,但需确认:
- 没有在
build.gradle.kts的debug构建类型中通过manifestPlaceholders或其他方式修改intent-filter参数。 - 保留
android:autoVerify="true",这是启用自动验证的关键。
完成以上步骤后,卸载Debug版本并重新安装,再测试Deeplink即可正常工作。
内容的提问来源于stack exchange,提问作者El_even
相关产品推荐
相关产品推荐

