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

使用react-native-pdf打包iOS、Android时出现构建报错如何解决?

react-native-pdf 双端打包构建报错解决方案

问题根因说明

  1. react-native-pdf@6.4.0 版本将 react-native-blob-util 设为对等依赖,不会随主库自动安装,所以会触发模块找不到的报错
  2. 手动安装依赖后iOS的重复符号错误,通常是Autolinking机制冲突、旧依赖残留或Pod编译配置异常导致

解决步骤

1. 清理旧依赖与缓存

执行以下命令删除所有残留的依赖文件与缓存:

rm -rf node_modules package-lock.json yarn.lock pnpm-lock.yaml
rm -rf ios/Pods ios/Podfile.lock
cd android && ./gradlew clean && cd ..

如果项目之前使用过rn-fetch-blob(react-native-blob-util的上游旧库),先完全卸载:

npm uninstall rn-fetch-blob
# 若使用yarn则执行 yarn remove rn-fetch-blob

同时删除Android项目中MainApplication.java、AndroidManifest.xml里所有rn-fetch-blob相关的配置代码。

2. 安装匹配版本依赖

在package.json中确认以下依赖版本匹配:

{
  "dependencies": {
    "react-native-pdf": "^6.4.0",
    "react-native-blob-util": "^0.13.16"
  }
}

执行安装命令:

npm install
# 若使用yarn则执行 yarn install

3. 修复iOS重复符号问题

  • 首先检查ios/Podfile文件,确认没有手动引入react-native-blob-util的代码,RN 0.60+的Autolinking会自动处理依赖引入,手动声明会导致重复加载
  • 若删除手动声明后仍报错,在Podfile的post_install代码块中添加以下配置,排除重复编译标记:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    # 修复react-native-blob-util重复符号问题
    if target.name == 'react-native-blob-util'
      target.build_configurations.each do |config|
        config.build_settings['OTHER_LDFLAGS'] ||= ['$(inherited)']
        config.build_settings['OTHER_LDFLAGS'] -= ['-ObjC']
      end
    end
    # 其余原有post_install配置保留即可
  end
end

修改完成后执行Pod安装命令:

cd ios && pod install --repo-update && cd ..

4. 重新构建验证

  • iOS端打包前先打开Xcode,点击Product > Clean Build Folder清理构建缓存后再执行打包
  • Android端直接执行打包命令即可

内容的提问来源于stack exchange,提问作者Harish Kumar Kailas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:06:07