React Native的重复符号问题

时间:2019-08-10 14:50:05

标签: ios react-native cocoapods

所以我一直在面对React Native的一个非常奇怪的问题。 我通过Cocoapods安装了一个库,用于从相机胶卷/照片库中拾取图像并裁剪图像,这是这种用法的灵丹妙药。但是然后,它与React Native版本11一起安装,但是我不想要这个版本的React Native,所以我也必须通过Cocoapods安装React Native,这样我才能拥有正在使用的React Native版本。 现在所有的东西都安装好了,如果我尝试在Dev环境中构建,一切都很好,但是当我尝试存档时,出现WebSocket和Image重复符号的错误(该库要求您将RCTImage作为Cocoapods中的子规范添加到React中) Native),RCTText等基本上是根据React Native文档通过Cocoapods安装React Native时需要添加的所有子规格。 因此,我认为我需要从项目中删除手动链接的库,因此我做到了,但这仅导致我现在在开发开发人员时遇到另一个错误,说缺少WebSocket,链接,网络等。基本上是您通过Cocoapods添加的所有子规格,所以我不明白,如果我通过Cocoapods安装React Native及其所有子规格(我也在工作区中运行),我的项目不应该使用已安装的Pod,而不是链接的库? 我已经在这上待了三个星期了。

这是我的豆荚列表。 enter image description here

这是我的链接二进制列表。 enter image description here

请,我该怎么办?我已经呆了三个星期了,几乎已经在网上尝试了所有解决方案,但是什么都没有改变。

谢谢。

2 个答案:

答案 0 :(得分:1)

我已经解决了问题,只有一件事是我认为您应该谨慎使用它,因为我不完全了解它的作用。因此,在文档中,存在此Cocoapods代码段,当您在目标结束后将其添加到Pods文件中时,即可解决此问题。这是代码段。

# very important to have, unless you removed React dependencies for Libraries 
# and you rely on Cocoapods to manage it
post_install do |installer|
  installer.pods_project.targets.each do |target|
    if target.name == "React"
      target.remove_from_project
    end
  end
end

如果您确切知道这是什么,请使用此代码段和说明发布另一个答案,以便我可以回答该问题,或者更好的是,使用说明来编辑答案,或者在下面留下评论,以便更新我的答案。从上面的代码片段的外观来看,尽管我会说这是从安装的pod中删除React及其Subspecs,但是在安装后,我可能是错的。

现在,当您完成安装后,尝试构建时会遇到另一个错误,说react-native或React无法解决,因为它位于多个位置,您应该删除其中一个,以便要解决此新错误,只需转到Pods目录并删除React文件夹,即完成[project-root]/ios/Pods/React后,您的应用程序将为开发而构建,并为生产而存档。

由于没有正确阅读安装指南,导致我遇到此问题,对于您要安装的库,通常如何完成与如何完成之间可能存在细微差异,因此请尝试多注意一些细节

答案 1 :(得分:0)

对我来说,

  • 从库中删除所有链接二进制文件(从构建阶段开始)
  • 删除Podfile.lock
  • 运行pod install
  • 等待在Xcode中建立索引
  • command + shift + k(清除项目)

再次构建并修复它。