demo
demo地址:https://github.com/kymodular/RNModule
使用
-
在
podfile文件頭部添加如下私有庫(kù)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,則需要加入此行才能開(kāi)啟開(kāi)發(fā)者菜單 'RCTText', 'RCTNetwork', 'RCTWebSocket', # 調(diào)試功能需要此模塊 'RCTAnimation', # FlatList和原生動(dòng)畫功能需要此模塊 # 在這里繼續(xù)添加你所需要的其他RN模塊 ] pod 'yoga', '0.59.9.React' # 如果RN版本 >= 0.45則加入下面三個(gè)第三方編譯依賴 pod 'DoubleConversion' pod 'glog' pod 'Folly' end
官方的RN接入優(yōu)缺點(diǎn)
官方的RN接入,是通過(guò)npm下載源碼,pod讀取本地spec的方式加載RN庫(kù),走的是development的環(huán)境。
優(yōu)點(diǎn) :安卓和iOS共用一個(gè)版本的RN,都讀取同一份npm下載的RN,方便整體維護(hù)和升級(jí),適合安卓和iOS共同開(kāi)發(fā)的情況。
缺點(diǎn):要求Android,iOS工程必須放到RN工程的ios/和android/目錄下,一個(gè)團(tuán)隊(duì)同時(shí)開(kāi)發(fā)這樣沒(méi)什么問(wèn)題,如果RN、Android、iOS工程是有不同團(tuán)隊(duì)維護(hù),這樣非常難受了,試想一下,每次你提交git都要拉去其他團(tuán)隊(duì)和你無(wú)關(guān)的代碼,你是不是很煩。
遠(yuǎn)程Pod接入
通過(guò)遠(yuǎn)程Pod接入,把本地的spec都上傳到遠(yuǎn)程私有庫(kù),然后在添加依賴,
優(yōu)點(diǎn) :
- 不必將iOS項(xiàng)目放到RN工程的
ios/ - 通過(guò)遠(yuǎn)程Pod接入,便于項(xiàng)目以模塊化方式快速引入React Native
缺點(diǎn):需要管理安卓和iOS兩套庫(kù),iOS部分pod lint有問(wèn)題