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

Expo 53升级后结合Appwrite开发时遭遇TurboModules相关错误,无法在Expo Go中正常开发

Expo 53升级后结合Appwrite开发时遭遇TurboModules相关错误,无法在Expo Go中正常开发

我太懂你现在的糟心了——升级到Expo 53后,Expo Go默认强制开启新架构和TurboModules,很多第三方库还没跟上适配节奏,尤其是Appwrite这类需要和原生模块交互的工具,很容易出现这类兼容性问题。咱们一步步来排查解决:

  • 优先检查并升级Appwrite SDK版本
    Expo 53对应的是React Native 0.75,旧版的Appwrite React Native SDK可能还没适配新架构的TurboModules机制,导致无法正确获取PlatformConstants,进而出现Cannot read property 'OS' of undefined的错误。你可以:

    1. 运行命令升级到最新版Appwrite SDK:
      npm install appwrite@latest
      # 或者 yarn 用户用这个
      yarn add appwrite@latest
      
    2. 彻底清除Expo缓存后重启服务:
      npx expo start --clear
      
  • 临时禁用Expo Go的新架构(应急方案)
    如果升级SDK后还是没解决问题,你可以先临时关闭新架构,回到旧架构继续开发,等Appwrite完全适配后再切换回来:
    在你的app.json或者app.config.js的expo字段中添加配置:

    "expo": {
      // 其他已有配置...
      "newArchEnabled": false
    }
    

    保存后再次运行npx expo start --clear,同时记得在Expo Go里长按项目图标清除缓存,重新加载项目。

  • 排查代码中PlatformConstants的使用方式
    第一个错误提示找不到PlatformConstants,大概率是某些代码(可能是Appwrite SDK内部,也可能是你自己的代码)还在通过TurboModuleRegistry直接获取这个模块,而新架构下官方推荐用React Native的PlatformAPI来获取系统信息。如果是你自己的代码里有类似调用,直接改成:

    import { Platform } from 'react-native';
    // 用 Platform.OS 代替从 PlatformConstants 里取的 OS 属性
    const currentOS = Platform.OS;
    

    如果是SDK内部的问题,那还是得等官方更新,或者先用上面的禁用新架构方案过渡。

  • 用Expo Doctor检查依赖兼容性
    运行npx expo doctor,这个工具会自动检测你的项目中是否有和Expo 53不兼容的依赖,按照它给出的提示修复即可,很多时候兼容性问题都是因为某个依赖版本没跟上导致的。

如果以上方法都试过还是不行,建议你创建一个最小化的测试项目——只初始化Expo 53项目,集成Appwrite的基础功能,看看是否还会出现同样的错误。如果测试项目没问题,那说明是你原有项目里的其他代码或者依赖冲突导致的;如果测试项目也有问题,那可以去Appwrite的官方仓库提交issue,说明你遇到的具体情况,方便官方定位修复。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 12:29:36