You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Expo GoogleSignIn在ExpoGo本地运行异常如何解决?

解决ExpoGo中GoogleSignIn运行报错的问题

核心原因

@react-native-google-signin/google-signin属于原生模块,而ExpoGo是通用预构建客户端,不支持加载第三方原生模块,因此必须使用自定义开发客户端(Custom Dev Client)才能正常运行该功能。

具体解决步骤

1. 安装并配置Expo Dev Client

  • 安装依赖:
    npx expo install expo-dev-client
    
  • 修改app.json/app.config.js,添加developmentClient字段:
    {
      "expo": {
        "developmentClient": true,
        // 保留原有其他配置
      }
    }
    

2. 构建自定义开发客户端

根据目标平台执行对应命令,生成包含GoogleSignIn原生模块的自定义客户端:

  • iOS平台:
    npx expo run:ios
    
  • Android平台:
    npx expo run:android
    

后续本地开发需使用这个自定义客户端,而非ExpoGo。

3. 修复"Invariant Violation: 'main' has not been registered"错误

  • 终止当前Metro服务,在项目根目录重新启动并清除缓存:
    npx expo start --clear
    
  • 检查package.json中的main字段,确保指向正确的入口文件(通常为index.js或App.js):
    {
      "main": "index.js"
    }
    

4. 验证GoogleSignIn配置正确性

  • 确认google-services.json(Android)或GoogleService-Info.plist(iOS)已放置在对应目录:
    • Android:android/app/文件夹下
    • iOS:ios/[你的项目名称]/文件夹下
  • 检查app.json中配置的文件路径是否准确:
    {
      "expo": {
        "ios": {
          "googleServicesFile": "./ios/GoogleService-Info.plist"
        },
        "android": {
          "googleServicesFile": "./android/app/google-services.json"
        }
      }
    }
    

总结

ExpoGo不支持第三方原生模块,必须通过自定义开发客户端才能运行依赖原生模块的GoogleSignIn功能。按照上述步骤完成配置后,即可在本地正常使用该功能。

内容的提问来源于stack exchange,提问作者Eylon Shmilovich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:42:35