Target SDK 33下Android App Links失效及域名验证求助
Target SDK 33迁移后App Links真机失效的域名验证方案
问题背景
将应用Target SDK版本迁移至33后,App Links在模拟器中正常工作,但真机上完全失效。手动在设备中选择网页地址关联的应用可恢复功能,但无法要求用户每次执行该操作。
尝试执行Android官方文档中的手动验证命令:
adb shell am compat enable 175408749 com.myapp.package
终端报错:
Cannot override 175408749 for com.modere.global because the app's targetSdk (33) is above the change's targetSdk threshold (30)
解决方案
1. 先排查自动验证失败根源
App Links自动验证是生产环境的最优解,先确认以下几点:
- 检查域名根目录下的
.well-known/assetlinks.json文件是否存在,内容中的包名、SHA-256签名值是否与当前应用完全匹配(debug和release包签名需分别对应) - 用真机浏览器直接访问
https://你的域名/.well-known/assetlinks.json,确认能正常加载且内容正确 - 确认AndroidManifest.xml中,App Links对应的
<intent-filter>已添加android:autoVerify="true"属性
2. Target SDK 33兼容的手动验证方法
175408749这个compat flag仅支持Target SDK ≤30的应用,33版本需用以下替代方式:
方式一:adb命令强制标记域名已验证(调试用)
执行以下命令,直接将目标域名标记为已验证状态:
adb shell pm set-app-links --package com.myapp.package 0 all https://你的域名/
0代表设置为已验证状态all表示对应用的所有用户生效- 末尾替换为你的目标域名
方式二:真机系统设置手动配置
在真机中操作:设置 → 应用 → 你的应用 → 打开方式 → 链接处理,找到对应的域名,手动设置为“已验证”。
方式三:修复自动验证(生产环境必做)
如果要避免用户手动操作,必须修复自动验证:
- 确保域名支持HTTPS,无重定向、证书过期等问题
- 确认应用有网络访问权限,真机可正常访问该域名(排除代理、VPN、企业网络限制等)
- 检查
assetlinks.json的格式是否正确,可通过Android Studio的App Links验证工具检查格式和匹配度
内容的提问来源于stack exchange,提问作者Akhileshwar Babu
相关产品推荐
相关产品推荐

