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

运行3年的裸React Native项目迁移至Expo并保留原生文件夹方法咨询

裸React Native迁移Expo并保留原生文件夹的可行方案

你完全可以保留现有的android和ios文件夹,不用从头生成新的原生代码,下面是具体操作步骤:

1. 确认基础配置

你已经成功安装了Expo Modules,接下来在项目根目录创建或完善app.json/app.config.js,确保里面的包名(ios.bundleIdentifier、android.package)和现有原生项目的包名完全一致,避免后续构建冲突。

2. 适配Firebase Messaging

不用重新配置Firebase的任何原生文件,直接保留你已有的android/app/google-services.json和ios/Runner/GoogleService-Info.plist。然后安装Expo官方的兼容包:

npx expo install expo-firebase-messaging

这个包能和你原生项目里已配置的Firebase SDK无缝协作,之前的推送证书、后台配置都能继续用。

3. 开发与构建命令(保留原生文件夹)

  • 日常开发:用npx expo start --dev-client启动项目,它会自动识别你现有的原生文件夹,不会覆盖任何配置。
  • 打包构建:不要用默认的eas build(你提到的expo perbuild应该是笔误),而是用本地构建模式,基于现有原生文件夹打包:
    首先在eas.json里添加一个本地构建配置:
    {
      "build": {
        "local": {
          "developmentClient": true,
          "local": true
        }
      }
    }
    
    然后执行对应平台的构建命令:
    # Android本地构建
    npx eas build --profile local --platform android
    # iOS本地构建
    npx eas build --profile local --platform ios
    
    这个命令会直接复用你现有的android/ios文件夹,所有应用商店部署的配置(签名文件、权限、推送证书等)都会保留。

4. 关键注意事项

  • 绝对不要执行npx expo prebuild(不带--no-generate参数),这个命令会生成新的原生文件夹覆盖你的现有配置。如果要检查配置是否正确,可以用npx expo prebuild --no-generate,它只会校验配置不修改文件。
  • 后续安装依赖优先用npx expo install,它会自动处理Expo Modules和原生依赖的版本兼容问题。
  • 定期备份android和ios文件夹,防止误操作导致配置丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 02:15:58