Android Intent Filter偶发失效:Release版本Firebase Dynamic Link无法正常响应
问题根因
该问题90%以上的概率是生产包的App Links自动验证失败导致的,和你intent filter的基础配置无关,完全符合你描述的所有现象:
- 自定义scheme不受App Links验证规则约束,所以始终正常
- 开发debug包的签名指纹已经在Firebase控制台配置,验证通过,功能正常
- 应用被系统回收重启后,系统会重新触发App Links验证,验证失败后会直接禁用对应https域名的intent filter,导致应用不会出现在intent选择器中
解决方案
1. 优先检查Firebase签名配置
- 导出你生产正式签名文件的SHA256指纹,确认已经添加到Firebase控制台「项目设置」-「对应Android应用」的SHA证书指纹列表中
- 访问
https://xxx.page.link/.well-known/assetlinks.json(将xxx替换为你的动态链接前缀),确认返回的配置中已经包含你的生产包名+对应SHA256的条目,没有的话可以在Firebase动态链接设置页重新生成域名配置 - 如果你不需要点击链接直接拉起应用的默认效果,可以给动态链接对应的intent filter添加
android:autoVerify="false"属性,明确关闭自动验证,避免验证失败导致intent filter被系统屏蔽
2. 检查生产构建配置
- 打开Android Studio的AndroidManifest.xml编辑器,切换到右上角「Merged Manifest」标签,选择生产release构建变体,确认动态链接对应的intent-filter完整存在,没有被其他依赖或者构建配置覆盖、移除
- 检查release版本的混淆规则文件
proguard-rules.pro,确认已经添加Firebase动态链接官方指定的混淆规则,避免相关类被误裁剪
3. 验证系统应用配置
- 打开测试设备上生产包的「应用信息」-「默认打开」设置页,确认xxx.page.link域名已经在支持的链接列表中,也可以手动添加该域名验证是否恢复正常
- 针对Android 11及以上设备,如果你的targetSdkVersion≥30,确认Manifest中没有添加限制隐式intent匹配的额外规则
内容的提问来源于stack exchange,提问作者id_k
相关产品推荐
相关产品推荐

