从 0.60 版本开始 react native 的 iOS 版本需要使用 CocoaPods 来管理依赖 然后cocoaPods上的source 都指向github 也就是说 你执行 npm react-native init 命令 创建RN项目 或者 在ios文件下pod install时 都要从github上一个pod一个pod地 git clone
由于众所周知的原因 国内开发者 通过正常渠道 下载github代码速度较慢 为了解决这一问题 我们可以借助码云上的一些镜像库 下载RN的相关依赖库
“码云极速下载” 是为了提升国内下载速度的镜像仓库,每日同步一次 地址如下
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
会找到类似这样的内容
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查看
这个命令拿到的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这个字段
将git字段替换成码云极速下载中的对应url
替换后再重新pod install --verbose 看下 Installing boost-for-react-native (1.63.0) 时 git clone的地址 是不是已经变成了码云的地址 如果是的话应该很快就可以intall完成
2 大部分pod通过上一种方法可以install成功 但如果你注意看ios文件夹下podfile的内容会有这么几句话
也就是说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