在过去的几天里,我一直在尝试让 React-Native(尝试 0.49-0.53)与几个本机模块/包一起工作,如 react-native-image-resizer、react-native-orientation、react-native-splash-screen、HockeySDK 等。
当我根据软件包维护者/git repo README 安装软件包时,总是会出现链接错误 - 除非我也安装了 Pod,否则会丢失一些文件:
$pod install
这导致安装软件包 Podfiles,但也安装了 React Pod,不幸的是过时的版本 (0.11)。
要安装当前版本,我遵循了这个 React Native 教程 https://facebook.github.io/react-native/docs/integration-with-existing-apps.html#configuring-cocoapods-dependencies。
我还需要将 Xcode-Project 从 .xcodeproject更改为.xcworkspace(根据几个 github 问题,如果您有兴趣,请写信,我可以重新搜索链接)。
这有助于解决之前的错误,但会导致此错误:ld: 21 duplicate symbols for architecture arm64
所以问题是同时部署了 2 个版本的 React?
所以总结一下:
- 需要链接具有本机实现的包 (
react-native link
) - 链接它们会安装 Pod,而 Pod 又会重新安装/链接 React 作为 Pod
- 这会导致*重复符号*错误
知道吗?
我重新初始化了一个根本没有安装 pod 的新项目!
还要小心,大多数 npm 包要么需要正常安装,要么需要 pod,只是不要使用 pod!
问题只是它会将整个额外的 react-native 链接为 pod,有时甚至是不同的版本,最终导致重复的符号。也许可以将反应本机库引用到已安装的(node_modules 年),但是 1。我不知道如何和 2.找到了上面的方式。