Skip to content

Commit

Permalink
add misc/3
Browse files Browse the repository at this point in the history
  • Loading branch information
deepraining committed Jun 8, 2021
1 parent 44763cd commit f732253
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,4 @@

1. [\[2018-12-28\] gitlab 安装、配置](./misc/1.md)
2. [\[2019-01-15\] api 接口管理工具](./misc/2.md)
3. [\[2021-06-08\] 解决 CocoaPods 命令 pod install 安装 github.com 上的包非常缓慢或者失败](./misc/3.md)
102 changes: 102 additions & 0 deletions misc/3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# 解决 CocoaPods 命令 pod install 安装 github.com 上的包非常缓慢或者失败

CocoaPods 执行 `pod install` 会安装 `github.com` 上的包,但 `github.com` 很不稳定。
一个解决方案是,使用脚本将 `github.com` 的资源转换为其他域的资源。

## CocoaPods v1.7.2

CocoaPods 从 1.7.2 版本开始使用 `https://cdn.cocoapods.org/` 代替原有的 `https://github.com/CocoaPods/Specs.git`
这样可以按需下载需要的包定义,而不用一次性下载整个 `Specs` 库(整个库是 3GB 左右),参考 [CocoaPods 1.7.2 — Master Repo CDN is Finalized!](https://blog.cocoapods.org/CocoaPods-1.7.2/)

```
source 'https://github.com/artsy/Specs.git'
- source 'https://github.com/CocoaPods/Specs.git'
+ source 'https://cdn.cocoapods.org/'
```

## 解决方案

脚本是使用 `python` 写的,很简单,放在 `https://github.com/senntyou/CocoaPods-Specs-Modify`,如要使用,需要先克隆到本地。

```
git clone https://github.com/senntyou/CocoaPods-Specs-Modify.git
cd CocoaPods-Specs-Modify
python modify.py
```

`modify.py` 脚本中,默认 `specsDir``~/.cocoapods/repos/trunk/Specs/``targetSite``github.com.cnpmjs.org/`,可以根据需要更改,再运行脚本

```
# Specs目录
specsDir = os.path.expanduser('~') + '/.cocoapods/repos/trunk/Specs/'
# github 域名
githubSite = 'github.com/'
# 替换域名
targetSite = 'github.com.cnpmjs.org/'
```

## 示例

比如,原来的包定义是

```
{
"name": "MJRefresh",
"version": "3.6.1",
"summary": "An easy way to use pull-to-refresh",
"homepage": "https://github.com/CoderMJLee/MJRefresh",
"license": "MIT",
"authors": {
"MJ Lee": "[email protected]"
},
"platforms": {
"ios": "9.0"
},
"source": {
"git": "https://github.com/CoderMJLee/MJRefresh.git",
"tag": "3.6.1"
},
"source_files": "MJRefresh/**/*.{h,m}",
"resources": "MJRefresh/MJRefresh.bundle",
"requires_arc": true
}
```

更改后的包变成

```
{
"name": "MJRefresh",
"version": "3.6.1",
"summary": "An easy way to use pull-to-refresh",
"homepage": "https://github.com.cnpmjs.org/CoderMJLee/MJRefresh",
"license": "MIT",
"authors": {
"MJ Lee": "[email protected]"
},
"platforms": {
"ios": "9.0"
},
"source": {
"git": "https://github.com.cnpmjs.org/CoderMJLee/MJRefresh.git",
"tag": "3.6.1"
},
"source_files": "MJRefresh/**/*.{h,m}",
"resources": "MJRefresh/MJRefresh.bundle",
"requires_arc": true
}
```

`github.com` 变成 `github.com.cnpmjs.org`

## 后续

更多博客,查看 [https://github.com/senntyou/blogs](https://github.com/senntyou/blogs)

作者:[深予之 (@senntyou)](https://github.com/senntyou)

版权声明:自由转载-非商用-非衍生-保持署名([创意共享 3.0 许可证](https://creativecommons.org/licenses/by-nc-nd/3.0/deed.zh)

0 comments on commit f732253

Please sign in to comment.