iOS远程Pod进入ReactNative

demo

demo地址:https://github.com/kymodular/RNModule

使用

  1. podfile文件头部添加如下私有库

    source 'https://github.com/kymodular/PrivatePods.git'
    source 'https://github.com/CocoaPods/Specs.git'
    
  2. 然后在给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都上传到远程私有库,然后在添加依赖,

优点

  1. 不必将iOS项目放到RN工程的ios/
  2. 通过远程Pod接入,便于项目以模块化方式快速引入React Native

缺点:需要管理安卓和iOS两套库,iOS部分pod lint有问题

问题

  • 解决pod lib lint/repo push不支持i386编译&只能真机运行的库

你可能感兴趣的:(iOS远程Pod进入ReactNative)