繁体   English   中英

将 react-native 升级到最新版本 0.61.4 后找不到以下原生模块

[英]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 文件

  1. 只需重置:

    rm -rf ios/Pods && rm -rf ios/构建

    cd ios && 吊舱安装 && cd..

    rm -rf node_modules && rm yarn.lock && yarn install

原因是为了最大限度地提高未来的兼容性。

  1. 这是 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM