为什么"反应本地链接某些原生模块"是彩票?

Mic*_*ael 11 react-native

我主要喜欢React Native.从0.22开始一直使用它.目前在0.35.

但为什么链接本地图书馆就像彩票?我很少在第一次拍摄时使用它,而破坏的东西往往是完全不同的东西.

每次RN升级都是皮塔饼.这是我通常做的事情:

  1. npm i react-native@0.35
  2. react-native upgrade (在每个问题上回答是以替换文件)
  3. 在info.plist中插入我的东西(它被替换了..)
  4. 重新安装pods
  5. 重新链接所有本机模块
  6. 屏住呼吸试试 react-native run-ios

大多数时候,上述情况都不起作用.但是当我从XCode中编译应用程序时它确实有效.

从这里到工作的旅程run-ios往往是漫长而令人沮丧的.它涉及以下内容:

  1. 取消链接所有本机模块 react-native unlink xyz
  2. 手动删除unlink未删除的标头搜索路径
  3. rm -rf node_modules
  4. yarn
  5. 产品/从XCode内清理
  6. 安装pods
  7. 链接本机模块

有时候上面的工作.大多数情况下它不起作用.通常,当我运行时,一些本机模块最终会出现在构建错误部分中react-native run-ios.从XCode运行照常工作.

最终出现在错误部分的本机模块每次都不一样.我还有一些"出货"的本机模块出现RN错误.(RCTGeolocation,RCTActionSheet,RCTWebSocket)

解决方案的下一个"级别"(当我无法得到上述内容时)工作是这样的:

  1. react-native init nextAppAttempt
  2. 将代码,资产,.babelrc等复制到新文件夹
  3. yarn
  4. 链接所有模块
  5. 安装pods

我已经在上面取得了一些成功,但是我将pita重命名为真实姓名并重新连接到我的GitHub仓库.

以下是我链接的本机模块:

react-native link react-native-fs && \
react-native link react-native-camera && \
react-native link react-native-code-push \
react-native link react-native-permissions && \
react-native link react-native-image-resizer && \
react-native link react-native-mixpanel && \
react-native link react-native-maps && \
react-native link react-native-svg &&
Run Code Online (Sandbox Code Playgroud)
  • 这是什么交易?

  • 这对其他人有用吗?

  • 我的流程中有缺陷吗?(希望如此)

Mic*_*ael 0

我已经几个月没有遇到上述任何问题了。我想这与最近的 RN 升级之一有关。今天我从 0.45 升级到 0.47,没有任何问题。

难道是 RN 修复了某些东西,这些问题就消失了?我当然希望如此。