Flutter集成AppCheck问题:Debug正常但APK打包后失效
问题排查与解决方案
1. 确认Release包的SHA-256指纹
Debug和Release签名密钥是独立的,必须确保:
- 获取Release签名密钥对应的SHA-256指纹,而非Debug密钥的指纹
- 在Google Play Console的App Check设置中,将该Release指纹添加到对应配置项内
获取Release SHA-256的命令(需替换为你的密钥库路径和别名):
keytool -list -v -keystore 你的Release密钥库路径 -alias 密钥别名
2. 同步google-services.json配置
- 从Firebase/Google Cloud控制台重新下载更新了SHA-256的
google-services.json,替换项目app/目录下的旧文件 - 执行Clean Project和Rebuild Project,确保新配置被正确打包进Release APK
3. 校验Release模式下的App Check初始化逻辑
检查checkTokenCode代码,确保Release模式未硬编码Debug令牌,而是通过Play Integrity自动获取:
- 初始化代码需区分Debug和Release环境,示例(Kotlin):
val appCheckProvider = when { BuildConfig.DEBUG -> DebugAppCheckProviderFactory.create(context) else -> PlayIntegrityAppCheckProviderFactory.create(context) } FirebaseAppCheck.getInstance().installAppCheckProviderFactory(appCheckProvider)
4. 确认Play Integrity API状态
检查Google Cloud Console中,你的项目是否已启用Play Integrity API,且关联了正确的应用包名
5. 核对Google Play签名配置
若开启了Google Play App Signing,需同时将Google Play提供的上传密钥SHA-256和应用签名密钥SHA-256都添加到App Check配置中
内容的提问来源于stack exchange,提问作者Ara Ballesteros Delgado
相关产品推荐
相关产品推荐

