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

为何Expo裸工作流项目可直接在Expo Go中运行?

核心原理与认知补全

1. 带Android/iOS文件夹却能跑在Expo Go里的原因

这个项目的Android/iOS文件夹是通过expo prebuild生成的预构建原生模板,而非经过自定义修改的原生代码。关键逻辑在于:

  • 它依赖的所有库(比如expo-camera、@tensorflow/tfjs-react-native)均属于Expo官方预集成的范围,这些库的原生实现已经打包在Expo Go客户端中。
  • 预构建的原生文件夹只是Expo原生层的镜像副本,没有添加任何Expo Go不兼容的自定义原生逻辑,因此Expo Go可以直接识别并加载项目的JS代码。

2. 常规裸工作流需要构建dev-client的本质原因

当项目满足以下任一条件时,才必须构建自定义dev-client:

  • 引入了Expo Go未预集成的第三方原生库(比如小众原生SDK)
  • 手动修改了Android/iOS文件夹内的原生代码(比如自定义Native Module、修改Manifest/Info.plist的特殊配置)
  • 使用了Expo config plugins无法自动处理的原生需求

这些场景下,Expo Go没有对应的原生实现,必须通过eas build将自定义原生代码打包到dev-client中,才能让JS层调用到对应的原生逻辑。

3. 你之前的认知遗漏点

  • 「有Android/iOS文件夹=裸工作流」是错误认知:expo prebuild是Expo的预构建功能,目的是为后续可能的原生修改铺路,但只要未做自定义原生改动,项目依然属于兼容托管工作流的状态,可以直接用Expo Go运行。
  • 裸工作流的核心是「自定义原生代码/依赖」,而非是否存在原生文件夹。Expo的工作流是渐变式的,并非非托管即裸的二元对立。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:15:27