You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

升级React Native与Expo到指定版本后iOS端出现"No script URL provided"错误求助

升级React Native与Expo到指定版本后iOS端出现构建卡壳问题求助

问题背景

我最近在Bareflow架构的React Native项目里做了版本升级:把React Native从0.75.1升到0.81.5,同时把Expo从51升级到54。Android端构建很顺利,但iOS端遇到了一堆棘手问题:

  • 一开始构建直接失败,报*No such module expo*,错误源头是AppDelegate.swift的导入语句
  • 按照社区建议把_arm64_添加到排除架构后,之前的模块错误消失了,但现在构建直接卡壳在某个环节,完全推进不下去
  • 我还试过降级React Native到0.79和0.78版本,结果还是卡在同一个地方;也试过彻底删除node_modulesPods文件夹,重新安装所有依赖,依然没有解决问题

环境信息

React Native 环境详情

npx react-native info
System:  
  OS: macOS 15.4.1  
  CPU: (8) x64 Apple M1  
  Memory: 42.91 MB / 16.00 GB  
  Shell:  
    version: "5.9"  
    path: /bin/zsh  
Binaries:  
  Node:  
    version: 24.11.1  
    path: /usr/local/opt/node@24/bin/node  
  Yarn:  
    version: 1.22.18  
    path: /usr/local/bin/yarn  
  npm:  
    version: 11.6.2  
    path: /usr/local/opt/node@24/bin/npm  
  Watchman:  
    version: 2025.12.15.00  
    path: /usr/local/bin/watchman  
Managers:  
  CocoaPods:  
    version: 1.16.2  
    path: /usr/local/bin/pod  
SDKs:  
  iOS SDK:  
    Platforms:  
      - DriverKit 24.2  
      - iOS 18.2  
      - macOS 15.2  
      - tvOS 18.2  
      - visionOS 2.2  
      - watchOS 11.2  
  Android SDK: Not Found  
IDEs:  
  Android Studio: 2024.1 AI-241.18034.62.2412.12266719  
  Xcode:  
    version: 16.2/16C5032a  
    path: /usr/bin/xcodebuild  
Languages:  
  Java:  
    version: 17.0.14  
    path: /usr/bin/javac  
  Ruby:  
    version: 2.6.10  
    path: /usr/bin/ruby  
npmPackages:  
  "@react-native-community/cli":  
    installed: 20.0.0  
    wanted: 20.0.0  
  react:  
    installed: 19.1.0  
    wanted: 19.1.0  
  react-native:  
    installed: 0.81.5  
    wanted: 0.81.5  
  react-native-macos: Not Found  
npmGlobalPackages:  
  "*react-native*": Not Found  
Android:  
  hermesEnabled: true  
  newArchEnabled: true  
iOS:  
  hermesEnabled: true  
  newArchEnabled: true

Expo 环境详情

expo-env-info 2.0.8 environment info:
System:  
OS: macOS 15.4.1  
Shell: 5.9 - /bin/zsh  
Binaries:  
Node: 24.11.1 - /usr/local/opt/node@24/bin/node  
Yarn: 1.22.18 - /usr/local/bin/yarn  
npm: 11.6.2 - /usr/local/opt/node@24/bin/npm  
Watchman: 2025.03.03.00 - /usr/local/bin/watchman  
Managers:  
CocoaPods: 1.16.2 - /usr/local/bin/pod  
SDKs:  
iOS SDK:  
Platforms: DriverKit 24.2, iOS 18.2, macOS 15.2, tvOS 18.2, visionOS 2.2, watchOS 11.2  
IDEs:  
Android Studio: 2024.1 AI-241.18034.62.2412.12266719  
Xcode: 16.2/16C5032a - /usr/bin/xcodebuild  
npmPackages:  
babel-preset-expo: ~54.0.0 => 54.0.8  
expo: ~54.0.0 => 54.0.29  
expo-updates: ^29.0.15 => 29.0.15  
react: 19.1.0 => 19.1.0  
react-dom: ^19.1.0 => 19.2.1  
react-native: 0.81.5 => 0.81.5  
Expo Workflow: bare

Expo Doctor 检测到的问题

我跑了expo doctor排查,结果有5项检查不通过,具体如下:

  1. package.json脚本冲突:package.json里的jetify脚本和node_modules/.bin中的内容冲突,建议移除冲突的脚本
  2. 依赖重复问题:项目存在多版本重复的原生模块,可能引发构建异常:
    • react-native-device-info:同时存在15.0.1、10.3.0、8.7.1三个版本(后两个为子依赖引入)
    • expo-constants:同时存在18.0.12和18.0.11两个版本(后者为expo-asset的子依赖)
  3. 原生配置同步问题:项目同时保留android/ios/原生文件夹和app.config.js配置文件,EAS Build将不会同步iosandroid相关配置项
  4. 依赖兼容性问题:部分依赖存在新架构支持或维护状态隐患:
    • 未适配新架构:@nozbe/watermelondbreact-native-fs
    • 已停止维护:react-native-fsrn-fetch-blob
    • 无官方元数据:@microsoft/react-native-clarityffmpeg-kit-react-nativesp-react-native-in-app-updates@nozbe/simdjson
  5. 依赖版本不匹配:有10个包的版本与Expo SDK 54要求的基准版本不一致:
    • 小版本差异:react-domreact-native-gesture-handlerreact-native-reanimated
    • 补丁版本差异:expoexpo-splash-screenbabel-preset-expo

已尝试的解决方案

  • 给iOS项目的排除架构添加_arm64_,解决了最初的No such module expo错误
  • 降级React Native到0.79、0.78版本,尝试绕过当前版本的兼容性问题
  • 完全删除node_modulesios/Podsios/Podfile.lock,重新执行yarn installpod install
  • 清除Yarn缓存和CocoaPods缓存

求助需求

现在我有点摸不着头绪,想请教各位:

  1. 目前iOS构建卡壳的问题,有没有可能是这些Doctor检测到的问题导致的?应该优先处理哪几个?
  2. 针对子依赖带来的重复版本问题,有没有更高效的解决办法?
  3. 有没有其他排查方向,可以定位iOS构建卡壳的具体原因?

火山引擎 最新活动