Expo构建Release版本时Google-sign DEVELOPER ERROR问题求助
排查EAS构建APK中Google登录失效的问题
以下是针对你的场景的具体排查方向:
1. 确认EAS构建使用的SHA1签名与Google配置一致
本地调试(npx expo run:android)用的是默认debug keystore的SHA1,但EAS构建会使用生产签名密钥(可能是Expo托管的密钥,或是你自行上传的keystore)。这是最常见的失效原因:
- 执行
eas credentials命令,查看Android平台的签名信息,获取对应的SHA1值 - 把这个SHA1添加到Google Cloud Console的OAuth 2.0客户端ID配置中,同时更新Firebase项目的Android应用签名信息
2. 检查Google服务配置文件的正确性
- 确保
app.json/app.config.js中配置的googleServicesFile指向的是生产环境的google-services.json(该文件需包含EAS签名SHA1对应的配置) - 确认Google Cloud中创建的OAuth客户端ID,是对应生产签名SHA1的Android类型客户端,而非debug用的客户端
3. 完善GoogleSignin的配置
空的GoogleSignin.configure()在生产环境可能无法正常工作,需显式传入生产环境的客户端ID:
import { GoogleSignin } from '@react-native-google-signin/google-signin'; GoogleSignin.configure({ clientId: '你的生产环境OAuth客户端ID', // 从Google Cloud Console获取 scopes: ['email', 'profile'], });
4. 验证EAS构建的签名配置
- 如果使用自定义keystore,检查
eas.json中是否正确配置了keystore的路径、密码、别名等信息,避免构建时签名错误 - 若使用Expo托管签名,需确保在EAS控制台中已正确关联你的项目,且签名信息未变更
5. 抓取生产构建的运行日志定位错误
将EAS构建的APK安装到设备后,通过adb logcat过滤Google相关日志,获取具体错误信息:
adb logcat | grep GoogleAuth
日志中通常会明确提示是客户端ID不匹配、签名无效还是权限问题,帮助精准定位。
内容的提问来源于stack exchange,提问作者Thomas Kruchelski
相关产品推荐
相关产品推荐

