You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Android端Firebase AppCheck 403错误:应用验证失败求助

解决Flutter Firebase AppCheck Android平台403 "App attestation failed"问题

核心排查修复步骤

日志中的App attestation failed是问题关键,说明Google Play Integrity服务无法验证应用合法性,按以下步骤逐一排查:

1. 核对应用签名指纹

  • 确保Firebase控制台配置的SHA-256指纹,和当前构建应用使用的签名文件指纹完全一致。
    • 用命令查看指纹:keytool -list -v -keystore 你的签名文件路径.jks -alias 你的别名
    • 注意:调试版、发布版签名文件的指纹不同,Firebase控制台需分别添加。
  • 若使用Android Studio默认调试签名,指纹路径为~/.android/debug.keystore,默认密码android,别名androiddebugkey。

2. 检查Firebase AppCheck配置

  • 在Firebase控制台的AppCheck页面,确认已为Android应用启用Play Integrity提供者。
  • 确保google-services.json是从Firebase控制台最新下载的,文件内的project_number需和日志中的cloudProjectNumber一致。

3. 匹配应用构建与测试渠道

  • Play Integrity服务要求应用需通过Google Play渠道安装,或使用Play签名的安装包测试:
    • 本地调试场景:
      1. 在Firebase AppCheck设置中启用调试模式(添加调试设备ID),或在代码中开启调试:
        FirebaseAppCheck.instance.setTokenProviderFactory(DebugAppCheckProviderFactory.getInstance())
        
      2. 确保测试设备的Google Play服务为最新版本。
    • 发布版测试场景:
      必须将应用上传至Google Play Console(内部/封闭测试渠道均可),从Play商店安装后测试,本地直接安装签名包会触发验证失败。

4. 验证代码集成正确性

  • 确认Flutter端AppCheck初始化代码正确:
    await Firebase.initializeApp();
    await FirebaseAppCheck.instance.activate(
      androidProvider: AndroidProvider.playIntegrity,
    );
    
  • 非调试场景下,不要将androidProvider设置为debug。

5. 检查网络与权限

  • 确保AndroidManifest.xml中添加了网络权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • 测试设备需能正常访问Google服务(Play Integrity依赖联网验证)。

6. 确认Firebase与Play项目关联

  • 在Firebase控制台项目设置 > 集成页面,检查Firebase项目是否已正确关联目标Google Play Console项目。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 20:57:46