各位打算入坑 React Native的小伙伴,看过来, React Native iOS 会踩到 Ruby gem + CocoaPods + 破玩意
1. Ruby?啥玩意?
咱先说说 Ruby。 作为前端装包工程师,平时用的多的就是 npm/yarn ,结果 React Native iOS 直接给塞一个 Ruby 语言的包管理体系:gem。
Ruby 的 gem 和 npm 差不多,负责给你下包。只是 npm 你习惯得很,但 gem 你大概率从没碰过。 更离谱的是,苹果的 iOS 原生生态就是靠 Ruby gem 管理 CocoaPods。 所以,React Native 也就被拖下水:
npm 负责 JS 依赖,gem 负责 Ruby 依赖。
好,咱 JavaScript 选手先硬吞一口 Ruby。
2. CocoaPods?啥鬼?
然后出现了 CocoaPods。 这个东西就是 iOS 世界的包管理器,相当于 npm
之于 JS 项目,专门用来下载各种 .framework / .xcframework 依赖。
而 CocoaPods 自己又是用 Ruby 写的,所以它其实就是一个 Ruby gem 包。
gem install CocoaPods 装一个ios的包管理工具
所以你才必须先装 Ruby,然后装 CocoaPods,在 bundle install
在 pod install
否则你连个 React-Core
都编译不出来。
3. 总结
来,总结一下 RN iOS 的神秘组合技:
- npm/yarn:管 JS 依赖
- Ruby gem:装 CocoaPods
- CocoaPods:管理 iOS 依赖
- Xcode:最终编译
- Podfile:把 Pod 依赖写死
- Gemfile:把 CocoaPods 的版本再写死
配置不对,调试起来就像被天打雷劈。