Xcode 13环境下React Native项目执行pod install报错如何解决?
报错原因
这个URI无效错误是两个因素共同导致的:
- 你的本地项目存储路径包含空格(路径中
new tecnilud字段中间存在空格),Ruby的URI解析器无法正确识别带空格的本地路径 - 你使用的CocoaPods 1.11.x版本和当前项目所用的React Native版本中内置的Folly.podspec引用逻辑不兼容
可行解决方法
按优先级从高到低尝试以下方案:
- 临时规避方案(最快生效)
在项目ios目录下执行带参数的pod install命令即可:
LANG=en_US.UTF-8 pod install --repo-update
- 路径修正方案
把项目路径中的空格全部去掉,比如把new tecnilud文件夹重命名为new_tecnilud,重命名完成后重新执行pod install即可 - 版本兼容方案
如果上面的方案都不生效,可以临时降级CocoaPods到1.10.x版本:
sudo gem uninstall cocoapods sudo gem install cocoapods -v 1.10.2
降级完成后删除ios目录下的Podfile.lock、Pods文件夹,重新执行pod install即可
4. React Native适配方案(适配高版本CocoaPods)
修改项目node_modules/react-native/scripts/目录下的react_native_pods.rb文件,找到引用Folly.podspec的代码行,把路径用URI.escape包裹处理空格:
把原来的
:podspec => "#{rnPath}/third-party-podspecs/Folly.podspec"
修改为
:podspec => URI.escape("#{rnPath}/third-party-podspecs/Folly.podspec")
修改完成后重新执行pod install,后续如果重装node_modules需要重新修改该文件,也可以用patch-package把修改内容固化到项目中。
内容的提问来源于stack exchange,提问作者Stéphane ROQUES
相关产品推荐
相关产品推荐

