美文网首页
ReactNative cocoaPods 依赖库问题

ReactNative cocoaPods 依赖库问题

作者: xidiyixiwocao | 来源:发表于2020-06-15 13:50 被阅读0次

    从 0.60 版本开始 react native 的 iOS 版本需要使用 CocoaPods 来管理依赖 然后cocoaPods上的source 都指向github 也就是说 你执行 npm react-native init 命令 创建RN项目 或者 在ios文件下pod install时 都要从github上一个pod一个pod地 git clone

    由于众所周知的原因 国内开发者 通过正常渠道 下载github代码速度较慢  为了解决这一问题 我们可以借助码云上的一些镜像库 下载RN的相关依赖库

    “码云极速下载” 是为了提升国内下载速度的镜像仓库,每日同步一次 地址如下

    https://gitee.com/mirrors

    RN相关依赖库都可以在这里找到镜像

    但有镜像地址还不够 要在podspec文件中替换source地址 podinstall的时候才会去码云的地址git clone相应库

    那要去哪里找到podspec文件来替换source的地址呢,这要看你install的是哪个pod

    主要是两个位置

    1   以boost-for-react-native为例

    npm react-native init 执行失败后 到ios文件夹下执行pod install命令 大概率会报连接错误的错

    这时候我们重新执行 pod install --verbose 通过使用verbose参数可以把install的过程log出来你会发现 是在

    Installing boost-for-react-native (1.63.0)

    git clone https://github.com/react-native-community/boost-for-react-native.git --branch v1.63.0-0 这条命令的时候网络超时了 

    那我们先要记住我们需要下载的boost-for-react-native版本号为1.63.0

    然后我们在终端log出来的日志里面搜索boost-for-react-native  

    会找到类似这样的内容

    podspec存放路径

    CDN: trunk Relative path: Specs/6/7/d/boost-for-react-native/1.63.0/boost-for-react-native.podspec.json exists! Returning local

    有几个关键信息需要我们提取出来 trunk 是我cocoapods的repo的名字 如果没有创建过私有库或者添加新的repo的话大部分人的cocoapods文件夹下面应该只有一个repo 名字是master

    你的pod有几个repo 可以通过命令 pod repo查看

    pod repo

    这个命令拿到的path 要用到 结合我们刚才拿到的 CDN: trunk Relative path: Specs/6/7/d/boost-for-react-native/1.63.0/boost-for-react-native.podspec.json这句话 我们就可以到对应的path目录下面找到对应的boost-for-react-native.podspec.json 

    也就是说boost-for-react-native.podspec.json 的完整路径是/Users/mac/.cocoapods/repos/trunk/Specs/6/7/d/boost-for-react-native/1.63.0

    到这里我们就找到了podspec的位置,使用xcode打开这个文件,找到source这个字段

    source

    将git字段替换成码云极速下载中的对应url

    替换后再重新pod install --verbose 看下 Installing boost-for-react-native (1.63.0) 时 git clone的地址 是不是已经变成了码云的地址 如果是的话应该很快就可以intall完成

    2 大部分pod通过上一种方法可以install成功 但如果你注意看ios文件夹下podfile的内容会有这么几句话

    本地podspec

    也就是说DoubleConversion,glog,Folly 这三个pod 的 podspec在 ../node_modules/react-native/third-party-podspecs/ 路径下,那我们去这三个路径下找到对应的podspec按照之前的方法更改source就好了

    补充说明:

    1 大家pod install的时候看到开始git clone github上的地址的时候就可以control+c 取消掉install 更改podspec内容了,没啥好等的

    2 有两个库在码云极速下载这个项目上找不到对应的镜像,但可以在码云主站上找到 ,我直接把地址提供给大家吧

    一个是OpenSSL-Universal   https://gitee.com/the_period_of_the_ten_kingdoms/OpenSSL

    另一个是glog  https://gitee.com/peppa777/google-glog

    相关文章

      网友评论

          本文标题:ReactNative cocoaPods 依赖库问题

          本文链接:https://www.haomeiwen.com/subject/uivcxktx.html