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

时间:2019-11-22 05:50:53

标签: 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"

6 个答案:

答案 0 :(得分:2)

首先,当您更新本机版本时,您应使用本机官方document。避免一些错误的事情。本地更新helper中的更新详细信息。

还有一个问题,自0.60起,CocoaPods现在已成为React Native的iOS项目的一部分。如果您还没有,请确保从现在开始使用xcworkspace文件打开iOS平台代码。

同时,在大多数情况下,现在不再需要反应本机链接。反应本地团队总体上检查了链接过程。请确保如上文档所述,以本机响应方式取消链接任何先前存在的依赖项。有关更多详细信息,您可以阅读此article

对于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进行修改

答案 1 :(得分:2)

这应该可以解决您的问题。

rm -rf ios/Pods && rm -rf ios/build && cd ios && pod install

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

PS:在反应本机版本0.60及更高版本中,本机模块现已自动链接。有关更多信息,请参见文档:https://facebook.github.io/react-native/blog/2019/07/03/version-60#native-modules-are-now-autolinked

答案 2 :(得分:1)

在最新的本机稳定版本中,您无需链接第三方库,只需安装它即可正常运行

首先,

  

因此,当您从较低版本迁移到较高稳定版本时,   然后您需要执行的操作,只需取消链接已使用的所有库    react-native 在您的项目中自动检测   依赖性。而且请记住,每当您安装这样的   您不需要运行react-native link <library-name>的库   进行链接。

第二,

  

现在,您需要使用最新版本的 xcworkspace 文件,   ios正在处理Pod,当Pod进入图片时,您   必须在ios项目中使用 xcworkspace 而不是 Xcodeproj

您可以检查更改日志here中是否有本机0.61.4版本。

我希望这会有所帮助。...谢谢:)

答案 3 :(得分:0)

我的解决方案是结合上述一些提示并更新我的Pod文件

  1. 只需重置:

    rm -rf ios / Pods && rm -rf ios / build

    cd ios && pod安装&& cd ..

    rm -rf node_modules && rm yarn.lock &&纱线安装

原因是要最大限度地提高将来的兼容性。

  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

的情况下使用Flipper

答案 4 :(得分:0)

可能是您的Podfile中有某些东西导致此。例如,我从项目中删除了一个库,但podfile中仍然有对它的引用:

   pod 'react-native-onesignal', :path => '../node_modules/react-native-onesignal'

评论/删除此行后,pod install效果很好。

答案 5 :(得分:0)

对我来说,只是将 npm install 转换为 yarn install 有效,因为其他团队正在使用 yarn 而我试图使用 npm 安装软件包,因此产生了一些冲突。 然后我重新克隆了这个项目 'yarn install', 'react-native link' 然后 '吊舱安装'