Expo EAS React Native应用Google登录Developer Error Code 10求助
解决Expo EAS生产构建中Google登录Developer Error Code 10问题
核心原因
开发构建正常但生产构建失败,通常是Google Play应用签名的SHA1指纹未正确关联到对应的Android OAuth客户端ID,或是生产环境下的OAuth配置不匹配。以下是针对性的解决步骤:
步骤1:创建并配置Android OAuth客户端ID
你当前使用的是Firebase自动生成的Web Client ID,但生产环境(尤其是Google Play签名后的安装包)需要单独创建Android类型的OAuth客户端ID:
- 登录Google Cloud Console,进入你的项目
- 导航到「API和服务」→「凭据」
- 点击「创建凭据」→「OAuth客户端ID」
- 选择「Android」类型,输入你的应用包名(必须和Firebase、Google Play中的包名完全一致)
- 粘贴Google Play Console中应用签名的SHA1指纹(路径:Google Play Console → 应用 → 应用完整性 → 应用签名)
- 创建后,复制这个Android客户端ID(格式:
xxx.apps.googleusercontent.com)
步骤2:更新GoogleSignin配置
在前端代码中,同时配置androidClientId和webClientId:
GoogleSignin.configure({ webClientId: "YOUR_WEB_CLIENT_ID.apps.googleusercontent.com", // 保留原Web Client ID androidClientId: "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com", // 新增步骤1创建的Android Client ID });
步骤3:更新google-services.json
- 回到Firebase控制台,进入项目设置 → 应用 → 下载最新的
google-services.json - 替换项目中
android/app目录下的旧文件 - 检查文件中的
oauth_client数组,确认包含三个条目:对应本地debug密钥、EAS发布密钥、Google Play应用签名的SHA1及对应的客户端ID
步骤4:验证EAS构建配置
- 确认EAS构建时,最新的
google-services.json被正确打包到生产包中。可以在eas.json的构建配置中添加pre-build脚本确保文件到位:"build": { "production": { "preBuildCommand": "cp ./path/to/latest/google-services.json ./android/app/google-services.json" } } - 使用
keytool验证EAS发布密钥的SHA1是否与Firebase中配置的一致:keytool -list -v -keystore your-eas-release-keystore.jks -alias your-alias
步骤5:检查插件配置完整性
在app.json中补充@react-native-google-signin/google-signin的完整配置:
"plugins": [ [ "@react-native-google-signin/google-signin", { "androidClientId": "YOUR_ANDROID_CLIENT_ID.apps.googleusercontent.com", "webClientId": "YOUR_WEB_CLIENT_ID.apps.googleusercontent.com", "packageName": "com.your.app.package" // 确保包名一致 } ] ]
额外验证点
- 确认Google Play Console的「应用签名」指纹已添加到Firebase项目的「应用指纹」列表中
- 检查Google Cloud Console中,OAuth客户端ID的包名和SHA1是否完全匹配,无拼写错误
内容的提问来源于stack exchange,提问作者Bassel Turky
相关产品推荐
相关产品推荐

