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

时间:2016-10-19 13:01:54

标签: 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
  7. 大部分时间以上都不起作用。但是当我从XCode中编译应用程序时它确实有效。

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

    1. 使用react-native unlink xyz
    2. 取消所有原生模块的链接
    3. 手动删除未删除链接的标题搜索路径
    4. rm -rf node_modules
    5. yarn
    6. 产品/从XCode中清理
    7. 安装广告
    8. 链接原生模块
    9. 有时上述工作。大多数情况下它不起作用。当我从react-native run-ios运行时,通常一些本机模块会出现在构建错误部分。从XCode开始运行正常。

      每次在错误部分结束的本机模块都不一样。我还有一些“出货”的本机模块出现RN错误。 (RCTGeolocation,RCTActionSheet,RCTWebSocket)

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

      1. react-native init nextAppAttempt
      2. 将代码,资产,.babelrc等复制到新文件夹
      3. yarn
      4. 链接所有模块
      5. 安装广告
      6. 我已经取得了一些成功,但是我已经将应用程序重命名为真实姓名并重新连接到我的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 &&
        
        • 这是什么交易?

        • 这对其他人有用吗?

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

1 个答案:

答案 0 :(得分:0)

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

可能是RN修复了一些问题并且这些问题消失了吗?我当然希望如此。