[英]Could not find the following native modules after upgrading the react-native to latest version 0.61.4
升级 react-native 版本后,我得到以下内容。 并且未能在模拟器中运行构建
在此之后,我运行了 react-native run-ios 它显示我的所有包都是手动链接的,您需要取消链接所有包。
此外,在更新到最新的 react-native 后,任何人都可以澄清 react-native-config.js 文件是强制性的。
我总是打开 app.Xcodeproj,但下面显示我需要打开 app.xcworkspace。 任何人都可以澄清这一点吗?
warn The following packages use deprecated "rnpm" config that will stop working from next release:
- react-native-fetch-blob: https://github.com/wkh237/react-native-fetch-blob#readme
- react-native-orientation: https://github.com/yamill/react-native-orientation#readme
- rn-fetch-blob: https://github.com/joltup/rn-fetch-blob#readme
Please notify their maintainers about it. You can find more details at https://github.com/react-native-community/cli/blob/master/docs/configuration.md#migration-guide.
error Could not find the following native modules: BugsnagReactNative, react-native-camera, react-native-cookies, react-native-fast-image, react-native-fetch-blob, RNFS, RNGestureHandler, RNImageCropPicker, react-native-image-picker, RNImageRotate, BVLinearGradient, react-native-orientation, RNShare, RNSVG, RNVectorIcons, RNViewShot, react-native-webview, rn-fetch-blob. Did you forget to run "pod install" ?
info Found Xcode workspace "Fashion.xcworkspace"
这应该可以解决您的问题。
rm -rf ios/Pods && rm -rf ios/build && cd ios && pod install && cd ../
rm -rf node_modules && rm yarn.lock && yarn install
PS:在 react-native 0.60 及以上版本中,原生模块现在是自动链接的。 有关更多信息,请参阅文档: https://facebook.github.io/react-native/blog/2019/07/03/version-60#native-modules-are-now-autolinked
首先,当你更新 react-native 版本时,你应该 react-native 官方文档。 避免一些错误的事情。 react-native 更新助手中的更新细节。
对于您的问题,从 0.60 开始,CocoaPods 现在是 React Native 的 iOS 项目的一部分。 如果您还没有,请务必从现在开始使用 xcworkspace 文件打开 iOS 平台代码。
同时,现在大多数情况下不再需要 react-native 链接。 react-native 团队对链接过程进行了全面检查。 确保 react-native 取消链接上述文档中提到的任何预先存在的依赖项。有关更多详细信息,您可以阅读本文。
对于 rnpm 问题,首先你应该在 package.json 中删除它。 然后在项目文件夹中创建一个 react-native.config.js 文件。
const ios = require('@react-native-community/cli-platform-ios');
const android = require('@react-native-community/cli-platform-android');
module.exports = {
project: {
ios: {},
android: {},
},
// assets: ['Resources/fonts'], // stays the same
// commands: require('./path-to-commands.js'),
};
然后在 rn-fetch-blob 中(make 为例),您还创建 react-native.config.js 并根据其 rnpm config 修改它
在最新的react-native稳定版中,无需链接第三方库,安装即可
首先,
因此,当您从较低版本迁移到较高稳定版本时,您需要做的就是取消链接您在项目中使用的所有库,因为react-native 会自动检测其依赖关系。 此外请记住,无论何时安装此类库,您都不需要运行
react-native link <library-name>
来链接它。
第二,
现在您需要使用最新版本的xcworkspace文件,ios 正在处理 pod,当 pod 出现时,您必须在 ios 项目中使用xcworkspace而不是Xcodeproj
您可以在 此处查看更改日志以了解 react native 0.61.4 版本。
我希望这会有所帮助....谢谢:)
我的解决方案是结合上面的一些技巧并更新我的 Pod 文件
只需重置:
rm -rf ios/Pods && rm -rf ios/构建
cd ios && 吊舱安装 && cd..
rm -rf node_modules && rm yarn.lock && yarn install
原因是为了最大限度地提高未来的兼容性。
这是 facebook 提供的模板,为您现有的旧 pod 文件挑选一些好东西:
https://github.com/facebook/react-native/blob/0.63-stable/template/ios/Podfile
您可能会发现下面的代码是auto linking
,
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
您可能需要升级 ios 目标
platform :ios, '10.0'
您可以在没有use_frameworks! enabled
use_frameworks! enabled
可能是您的 podfile 中有某些东西导致了这种情况。 例如,我从项目中删除了一个库,但在 podfile 中仍然有对它的引用:
pod 'react-native-onesignal', :path => '../node_modules/react-native-onesignal'
一旦评论/删除这一行, pod install
就可以很好地工作。
对我来说,只是将 npm 安装转换为 yarn install 是可行的,因为其他团队正在使用 yarn 而我试图使用 npm 安装包,所以它产生了一些冲突。 我重新克隆了项目,然后是“yarn install”,“react-native link”,然后是“pod install”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.