1

这仍然是必需的,我一直看到这条消息,但从我的经历来看它是完全无效的。几乎我使用的每个包,我仍然需要运行 react-native 链接。

在此处输入图像描述

谁能告诉我这是怎么回事?它只是特定的包,还是为什么我仍然需要一直运行 react-native 链接,当它告诉我不应该运行它时。我的意思是,它实际上只是将它添加到 iOS 的 pod 文件和 Android 的 gradle 中。

还有其他人遇到这种情况吗?

为了进一步展示这一点,看看这个,刚刚运行了 npm install for lottie,除非我运行链接,否则它将无法工作,我应该手动添加到我的 pod 文件中吗?我不明白为什么 React Native(Facebook)团队说不再需要它,在我们 4 人的团队中,我们一直都需要它。

在此处输入图像描述

4

2 回答 2

2

从 0.60 版本开始,React Native 提供了自动链接。

这意味着如果库支持自动链接,您只需使用yarnor安装库npm,在 ios 文件夹中运行pod install并构建。

# install
yarn add <the-library-name>
cd ios && pod install && cd .. # CocoaPods on iOS needs this extra step
# run
yarn react-native run-ios
yarn react-native run-android

例如https://github.com/react-native-geolocation/react-native-geolocation支持自动链接,你不需要它Podfile.(除非你有一个非常旧的版本)。

在您的情况下,打印屏幕中列出的所有手动链接的库都是使用react-native link <libraryName>或在 Podfile 中手动添加的,或者使用对.xcodeprojXcode 中文件的引用。

要删除这些错误:

确保你有一个支持自动链接和运行的库react-native unlink <libraryname>版本pod install

注意为了避免一些问题,我发现有时最好删除podfile.lock并生成一个新的pod install

如果这不起作用,请按照以下步骤操作:

1)删除 Podfile 中与这些库关联的行(除非您拥有的库版本不支持自动链接,在这种情况下,您应该按照库文档中的说明运行使用手动链接)。

您可以通过查看 RN 升级助手来检查 Podfile 如何查找特定的 RN 版本:

https://react-native-community.github.io/upgrade-helper/?from=0.59.5&to=0.63.3

2)您现在不需要在 Xcode 中手动引用支持自动链接的库(除非该库需要其文档中提到的一些特殊步骤)。

这就是过去手动链接的方式:

在此处输入图像描述

来源和更多信息:https ://reactnative.dev/docs/linking-libraries-ios

对于支持自动链接以避免任何错误的库,您可以删除.xcodeprojXcode 中与它们关联的引用(和其他)(除非关联的库需要在 Xcode 中进行修改)

来源和一些有用的链接:

https://github.com/react-native-community/cli/blob/master/docs/autolinking.md

https://medium.com/@srbkrishnan/react-native-auto-linking-on-android-65a850bb9ed9

关于 RN 升级的附加说明:我发现如果在升级时我的文件中有太多需要修改的内容,我可以更轻松地从直接从 RN 升级助手获取project.pbxproj的全新文件开始。project.pbxproj然后我在那个文件中替换RnDiffAppMyProjectName,并在Xcode中一一添加了我需要的库修改。

于 2020-12-05T19:18:07.823 回答
0

您将不再需要链接更多库,您只需升级您的 React-native 模块并确保您也使用最新的 Xcode,所有问题都将消失。谢谢。

于 2020-12-11T19:15:26.183 回答