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

Expo构建iOS应用遇react-native-svg-charts依赖冲突求助

问题分析与解决方案

核心矛盾在于react-native-svg-charts@5.4.0是已停止维护的包(最后更新于2020年),它的peer依赖强制要求react-native-svg在^6.2.1或^7.0.3版本,而你当前使用的react-native-svg@15.3.0适配的是较新版本的Expo,两者版本完全不兼容,导致构建时的ERESOLVE错误;而降级react-native-svg到7.0.3后,又因为该版本与你的Expo SDK版本不兼容,引发模块加载失败,出现Invariant Violation启动错误。

可选解决方案

1. 临时绕过peer依赖冲突(紧急构建TestFlight)

如果需要快速完成TestFlight构建,可以强制忽略peer依赖冲突:

  • 执行安装命令时添加参数:
    npm install --legacy-peer-deps
    
    或使用yarn的话:
    yarn install --ignore-peer-deps
    
  • 完成安装后再执行eas build --platform iOS,大概率能成功构建。但注意这是临时方案,长期使用可能出现SVG图表渲染异常的潜在问题。

2. 替换react-native-svg-charts(长期稳定方案,推荐)

由于react-native-svg-charts已多年未维护,无法适配现代Expo和react-native生态,强烈建议弃用它,替换为维护活跃的替代库:

  • 你已安装的react-native-chart-kit:支持新版react-native-svg,可以扩展使用它提供的图表类型(折线图、柱状图、饼图等),满足多数场景需求。
  • victory-native:基于react-native-svg的现代图表库,维护活跃,支持Expo,提供丰富的自定义配置和图表类型。
  • react-native-svg-charts-next:原react-native-svg-charts的社区维护分支,适配新版react-native-svg,可以直接替换原包,语法和API基本兼容,迁移成本低。

3. 降级Expo SDK(不推荐)

如果坚持要使用原react-native-svg-charts,需要将Expo SDK降级到适配react-native-svg@7.0.3的旧版本(比如Expo SDK 33左右),但该方案弊端极大:旧SDK不再接收安全更新,后续会遇到更多兼容性问题,开发体验和稳定性无法保障,不建议采用。

关于降级react-native-svg后的启动错误

你安装react-native-svg@7.0.3后出现的Invariant Violation错误,本质是该旧版本与你当前的Expo SDK版本不兼容,导致模块加载失败,进而AppRegistry无法正常注册组件。这条路径本身就不可行,无需继续尝试。

内容的提问来源于stack exchange,提问作者S. N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 07:15:10