【发布时间】: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