修改包名后无法使用Google登录问题求助
解决修改包名后Google登录ApiException:10的问题
问题场景
使用change_app_package_name修改应用包名,执行flutterfire configure在Google控制台配置新包名并添加SHA密钥后,Google登录失败,核心报错:
I/flutter (14586): PlatformException - sign_in_failed: com.google.android.gms.common.api.ApiException: 10:
修改包名前登录功能完全正常。
排查与解决步骤
验证Google Cloud Console的OAuth配置
- 进入对应项目的「API和服务」>「凭据」页面
- 确认存在与新包名完全匹配的Android OAuth客户端ID,包名需和
AndroidManifest.xml里的package字段完全一致(注意大小写、标点) - 检查该客户端ID下的SHA-1指纹:需包含当前使用的debug和release指纹
- Debug指纹可通过命令获取:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android - Release指纹用打包签名密钥文件生成,确保两个指纹都已添加
- Debug指纹可通过命令获取:
检查google-services.json文件
- 确认
flutterfire configure生成的文件中,client>client_info>android_client_info>package_name是新包名 - 核对
client>oauth_client中的client_id、sha1_fingerprint和Google Cloud Console的配置完全一致 - 将正确的google-services.json替换到
android/app目录,执行flutter clean、flutter pub get后重新构建运行
- 确认
检查OAuth同意屏幕设置
- 测试环境:确保「测试用户」列表包含你用于登录的邮箱
- 正式环境:确保OAuth同意屏幕已完成发布
重置应用状态
- 卸载设备上的应用,清除Google Play服务缓存,重新安装后测试登录
内容的提问来源于stack exchange,提问作者Atul Sahoo
相关产品推荐
相关产品推荐

