从 0.60 版本开始,React Native 提供了自动链接。
这意味着如果库支持自动链接,您只需使用yarn
or安装库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 中手动添加的,或者使用对.xcodeproj
Xcode 中文件的引用。
要删除这些错误:
确保你有一个支持自动链接和运行的库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
对于支持自动链接以避免任何错误的库,您可以删除.xcodeproj
Xcode 中与它们关联的引用(和其他)(除非关联的库需要在 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
然后我在那个文件中替换RnDiffApp
为MyProjectName
,并在Xcode中一一添加了我需要的库修改。