【问题标题】:Why is "react-native link some-native-module" a lottery?为什么“react-native link some-native-module”是彩票?
【发布时间】:2017-09-15 05:10:27
【问题描述】:

我最喜欢 React Native。自 0.22 以来一直在使用它。目前为 0.35。

但是为什么链接原生库就像抽奖一样?我很少在第一次拍摄时让它发挥作用,而破裂的东西通常是完全不同的东西。

每个 RN 升级都是一个皮塔饼。这是我通常做的:

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

大多数情况下上述方法不起作用。但是当我从 XCode 中编译应用程序时它确实有效。

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

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

有时上述方法有效。大多数情况下它不起作用。当我从react-native run-ios 运行时,通常一些本机模块最终会出现在构建错误部分。像往常一样从 XCode 运行。

最终出现在错误部分的本机模块每次都不相同。我也有一些带有 RN 错误的本机模块“发货”。 (RCTGeolocation, RCTActionSheet, RCTWebSocket)

解决方案的下一个“级别”(当我无法获得上述解决方案时)是这样的:

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

我在上述方面取得了一些成功,但我有将应用程序重命名为真实名称并重新连接到我的 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 &&
  • 这是怎么回事?

  • 这对其他人有用吗?

  • 我的流程是否存在缺陷? (希望如此)

【问题讨论】:

  • 不完全相关,但我会确认我总是需要运行 react-native run-ios 多次,然后“No bundle url present”错误消失。
  • 天哪,谁能给我看看这里的灯。真正令人讨厌的问题

标签: react-native


【解决方案1】:

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

会不会是在 RN 中修复了某些问题而这些问题都消失了?我当然希望如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    相关资源
    最近更新 更多