2016 . 11 . 23
首先 安装/更新 CocoaPods 到最新版本, 使用命令
sudo gem install -n /usr/local/bin cocoapods
或者sudo gem install -n /usr/local/bin cocoapods --pre
然后再
pod --version
查看一下当前安装的最新版本。
注明: 前者没有加 --pre 的,会安装最新已发布的版本 ; 后者加了 --pre 的,会安装到最新的 beta 版本。 如下图 :
最新版本 :
最新 beta 版:
这两种版本理论上来说,都可以使用,没有太大的冲突或者不同,可以去官网看说明。
接下来接下来... 才是大家关心的 pod setup 问题,一定很多人在这一步,怎么试都不成功,要么下载到一半失败, 要么使用 GitHub Desktop下载自己 Fork 过来的 Specs,也是才下载没多久也失败, 前面的这些问题,虽说和网速有关,但也不完全,也和你的网络ip有关,因为你使用的GitHub上的镜像。 还有一些可能的错误,这里统一汇总一下:
(以下的每一步,都要确保之后才能开始下载 Specs 镜像)
1. 使用终端下载,可能因为终端的下载上限大小而失败, 处理方式就是修改设置 下载上限的大小。 本片文章中, 2016.8.18 记录中有详细说明将 http.postBuffer 设置为500M ,这里不再说明具体操作。
2. 这个问题我觉得是大家出现最多的, 就是开始下载了,到一半可能就失败了,然后有这样的错误提示 fatal: The remote end hung up unexpectedly
意思是远程终端误认为操作停止了。
这个错误造成的原因有这几个:
1 > 我们可能忽略了,如果Mac 进入休眠状态,终端下载没多久就会失败的情况, 为了防止因为休眠状态而导致下载失败的情况,我们临时性的将Mac设置为永不休眠状态。 系统偏好设置 -> 节能 -> 电源适配器 , 将滑块拖到永不 状态。
2 > 在没有休眠的状态下, 还有可能因为 请求超时而失败, 这个是因为下载请求在一定的时间内,没有得到响应, 所以也会造成远程终端中断下载。对于这个问题,我们要设置终端下载的超时时间。 新打开一个终端,输入命令
cd/etc/ssh(进入ssh)
sudo vi ssh_config(编辑ssh_config)
按 i 进入编辑模式,
再最后一行添加
ServerAliveInterval 30(设置超时时间30秒)
然后再 Esc ,输入 :wq
如下图:
设置了超时时间,可以在一定的程度上,保证了下载请求间隔的响应时间。
3. 以上的两大步都设置处理好后,接下来我们要开始下载 Specs 镜像了,其实操作的方式也是有多种的,如你直接 pod setup ,下载的镜像是 github 上的,然后你再打开顶一个终端看进度,几乎几秒才下载 几Kb,要知道现在的镜像大小解压出来800+M ,这样下是不是很容易失败? 速度慢,指不定在某个时候就下载超时了。
好在国内有自己的镜像,放在Coding 上了,这个镜像服务 是每日都会更新的,和 github 上是一样的。这就是我们的解决方案,虽然现在的速度没有说特别快,但是相比 github 上好太多了,至少下载过程中失败的几率大大减少了,我自己在公司下载的速度 是 50 kb/s , 而在家里,到晚上12点的时候,下载的速度 254 kb/s , 所以只要不是网速太差,我想下载也不至于还是1kb、2kb这样的。
终端输入:
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
我们可以看到实时的下载进度。下载解压好后,再输入
pod setup
等待一下... 如果出现如下错误,
Setting up CocoaPods master repo
$ /usr/bin/git -C /Users/yutianlong/.cocoapods/repos/master pull --ff-only
error: RPC failed; curl 7 Failed to connect to github.com port 443: Operation timed out
fatal: The remote end hung up unexpectedly
[!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`
YuTianLong:~ yutianlong$ pod repo update
Updating spec repo `master`
$ /usr/bin/git -C /Users/yutianlong/.cocoapods/repos/master pull --ff-only
From https://github.com/CocoaPods/Specs
cd9078f..706b917 master -> origin/master
Updating cd9078f..706b917
Fast-forward
这个错误大概是说未能连接到github.com 443端口,我们setup就是希望配置一下连接上去,它的提示中有建议操作, pod repo update --verbose,更新一下 repo.
所以我们执行一下
pod repo update --verbose
等待...最后输入
CocoaPods 1.2.0.beta.1 is available.
To update use: `sudo gem install cocoapods --pre`
[!] This is a test version we'd love you to try.
For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.2.0.beta.1
说明你安装成功了,并且可以继续使用 CocoaPods 了。
其它:
有的时候我们在 pod install 或者 pod update 的时候,会出现这样的错误提示:
[!] CocoaPods was not able to update the `master` repo. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`
提示你需要 pod repo update --verbose ,但是如果你不想更新repo, 可以使用这样的命令:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2016 . 08 . 18
在升级CocoaPods 1.0.1之前,版本是 0.39.0 ,升级过程中,也是遇到各种命令问题,包括升级完成之后,部分的第三方库 也会造成冲突,报红,在这里做一个记录汇总,希望能一起学习。
升级前的说明。
升级过程安装CocoaPods:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/update_rubygems
升级过程安装Specs镜像 :
Cloning into 'master'...
error: RPC failed; result=56, HTTP code = 200
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
CocoaPods 、Podfile的完善及使用。
pod 'AFNetworking'
pod 'MKNetworkKit'
end
[!] Pods written in Swift can only be integrated as frameworks; add `use_frameworks!` to your Podfile or target to opt into using it. The Swift Pod being used is: xxxxxxxxxxxx