demo
demo地址:https://github.com/kymodular/RNModule
使用
-
在
podfile
文件头部添加如下私有库source 'https://github.com/kymodular/PrivatePods.git' source 'https://github.com/CocoaPods/Specs.git'
-
然后在给
target
正常添加RN依赖和第三方依赖就行,如下use_frameworks! target 'RNModule' do pod 'React', :subspecs => [ 'Core', 'CxxBridge', # 如果RN版本 >= 0.47则加入此行 'DevSupport', # 如果RN版本 >= 0.43,则需要加入此行才能开启开发者菜单 'RCTText', 'RCTNetwork', 'RCTWebSocket', # 调试功能需要此模块 'RCTAnimation', # FlatList和原生动画功能需要此模块 # 在这里继续添加你所需要的其他RN模块 ] pod 'yoga', '0.59.9.React' # 如果RN版本 >= 0.45则加入下面三个第三方编译依赖 pod 'DoubleConversion' pod 'glog' pod 'Folly' end
官方的RN接入优缺点
官方的RN接入,是通过npm下载源码,pod读取本地spec的方式加载RN库,走的是development的环境。
优点 :安卓和iOS共用一个版本的RN,都读取同一份npm下载的RN,方便整体维护和升级,适合安卓和iOS共同开发的情况。
缺点:要求Android,iOS工程必须放到RN工程的ios/
和android/
目录下,一个团队同时开发这样没什么问题,如果RN、Android、iOS工程是有不同团队维护,这样非常难受了,试想一下,每次你提交git都要拉去其他团队和你无关的代码,你是不是很烦。
远程Pod接入
通过远程Pod接入,把本地的spec都上传到远程私有库,然后在添加依赖,
优点 :
- 不必将iOS项目放到RN工程的
ios/
- 通过远程Pod接入,便于项目以模块化方式快速引入React Native
缺点:需要管理安卓和iOS两套库,iOS部分pod lint有问题