【问题标题】:Slow compile times with react-native iOS appreact-native iOS 应用程序的编译时间很慢
【发布时间】:2018-09-01 08:59:18
【问题描述】:

我目前正在开发一个 react-native iOS 应用程序。在开发过程中,我注意到应用程序的编译时间非常慢。我连接了一个 CI,它大致执行以下操作:

  • 清理应用程序工作区的 git checkout
  • 运行单元测试
  • 运行 UI 测试构建应用程序

由于这是一个干净的检查,应用程序总是重新编译 React.xcodeproj 附带的所有 react 静态库,如 libyoga.a、libReact.a 等。这意味着一个干净的 CI 构建大致需要 ~ 8 分钟 仅用于构建所有 React 依赖项(~4min * 2,因为 UI 测试目标再次重新构建 React)。

我想知道是否可以加快编译时间。我提出了以下想法,但需要您的建议来告诉我它是否可行,或者我是否走错了路。

  • 为 iphoneos 和 iphonesimulator 编译所有静态库
  • 通过 lipo 将它们放在一个文件中
  • 将它们移到文件夹中
  • 将该文件夹放入版本控制中
  • 将该文件夹中的库链接到 Xcode 项目中

这样,如果我更新 package.json 中的 react-native 版本,只需要构建一组新的静态库,对吗?

我想到的另一个想法是构建一个 react-native 的动态框架。该框架只能构建一次,然后通过 carthage 或手动添加到应用程序中。动态框架会链接所有的 react 静态库,并将正确的头文件添加到头文件搜索路径中。

如果这可行或知道如何改进构建架构以加快编译时间,是否有人可以给我一个提示?

【问题讨论】:

  • 我的想法一模一样,请问对你有用吗?
  • 我从 carthage 迁移到 cocoapods,这极大地改善了我的整体开发体验,因为 react-native 可以通过 podspec 集成,增量编译也能正常工作。我推荐这篇文章,它几乎描述了我的新设置:artsy.github.io/blog/2018/04/17/making-a-components-pod
  • 这也使我能够再次激活并行构建????

标签: ios xcode react-native linker static-libraries


【解决方案1】:

选中这两个复选框 1 在构建日志中显示环境变量 2 仅在安装时运行脚本

但是当你第一次运行时取消选中它,因为这是第一次加载脚本,否则你无法在打包程序中打开获取加载脚本。

【讨论】:

    猜你喜欢
    • 2019-12-03
    • 2018-04-01
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    相关资源
    最近更新 更多