Android端Google登录报DEVELOPER_ERROR,iOS端正常求助
以下是针对你已排查基础项后的进阶排查方案:
确认EAS构建的签名指纹(若使用EAS Build)
如果你用Expo EAS构建Android包,本地gradlew signingReport获取的指纹可能和EAS实际使用的不一致。登录EAS控制台,进入你的项目→Builds→选择对应构建记录→Credentials,找到Android Keystore的SHA-1指纹,添加到Firebase和Google Cloud Console的OAuth客户端配置中。检查Google Cloud Console的OAuth同意屏幕状态
进入Google Cloud Console的OAuth同意屏幕页面,确保状态是已发布。生产环境下,未发布的同意屏幕仅允许添加的测试用户登录,其他用户会触发验证错误。启用Google People API
登录Google Cloud Console,搜索并启用Google People API。react-native-google-signin在获取用户信息时依赖该API,未启用会导致登录失败。验证google-services.json的完整性
打开下载的google-services.json,检查client数组中是否存在包含你添加的所有SHA-1指纹的条目,且client_info.android_client_info.package_name与你的应用包名完全一致(大小写敏感)。若有多个client条目,确保Web客户端ID对应的配置正确关联了包名和指纹。检查Expo配置的一致性
确认app.json/app.config.js中android.package的值与Firebase、Google Cloud Console中配置的包名完全一致,无拼写错误或大小写差异。等待签名指纹生效
Google Play应用签名和Firebase的指纹同步存在延迟,添加新指纹后可能需要等待1-24小时才会生效,不要立即测试。获取错误详情
在signIn方法的错误捕获中,打印完整的错误对象(而非仅错误码):try { await GoogleSignin.signIn(); } catch (error) { console.log('Google登录错误详情:', error); }错误详情中的
message或details字段可能给出更具体的失败原因,比如API未启用、客户端ID不匹配等。更新设备Google Play服务
确保测试设备上的Google Play服务是最新版本,旧版本可能存在验证逻辑兼容问题。
内容的提问来源于stack exchange,提问作者Haze

