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

Expo分离版React Native应用Xcode归档构建报错:libicui18n.58.dylib未加载

解决Expo分离版React Native归档构建报错:Command /bin/sh failed with exit code 134

从你的报错日志来看,核心问题是dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.58.dylib——这是Node.js依赖的ICU字符编码库找不到导致的。而且归档构建时Xcode的环境变量限制比开发模式更严格,所以之前设置脚本仅在安装时运行的方案只解决了开发构建的问题。下面是针对性的解决步骤:

1. 修复ICU4C库依赖问题

ICU4C是Node.js运行的关键依赖,要么是该库缺失,要么是版本不匹配:

  • 用Homebrew重新安装ICU4C:
    brew uninstall --force icu4c
    brew install icu4c
    
  • 如果你的项目依赖特定版本的ICU4C(比如日志里的58版本),可以指定版本安装并强制链接:
    brew install icu4c@58
    brew link icu4c@58 --force
    

2. 调整Xcode归档脚本的环境变量

归档构建时Xcode会限制环境变量范围,需要在报错的脚本(Script-B5722AD01DFB7E3F0084848F.sh)中显式配置依赖路径:

  1. 打开Xcode,进入项目的Build Phases,找到对应的Shell脚本
  2. 在脚本开头添加以下内容,确保ICU4C和Node.js的路径被正确识别:
    # 配置ICU4C路径
    export PATH="/usr/local/opt/icu4c/bin:/usr/local/opt/icu4c/sbin:$PATH"
    export LDFLAGS="-L/usr/local/opt/icu4c/lib"
    export CPPFLAGS="-I/usr/local/opt/icu4c/include"
    
    # 如果使用nvm管理Node版本,添加以下内容确保Xcode能找到正确的Node
    source ~/.nvm/nvm.sh
    nvm use 你的项目指定Node版本号
    

3. 清理构建缓存

缓存冲突也可能导致此类问题,建议清理以下缓存:

  • 清理Xcode构建缓存:选择Xcode菜单栏的Product > Clean Build Folder,或者直接删除DerivedData目录:
    rm -rf /Users/waltershub/Library/Developer/Xcode/DerivedData/repticity-checkin-dyladlpnrkuavlcnilspzxthizjw
    
  • 清理Expo缓存并重新生成iOS构建文件:
    expo start --clear
    expo prebuild --clean --platform ios
    

    注意:prebuild --clean会重置ios目录,执行前请做好代码备份

4. 验证Expo与React Native版本兼容性

确保你的Expo SDK版本和React Native版本是官方兼容的,版本不匹配可能引发依赖链问题。可以查看项目的package.json,核对Expo官方的版本对应表,必要时升级或降级到兼容版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:42:54