Mac上安装Cocoapods基础和一些踩坑记录

Cocoapods 为Xcode中的项目添加依赖库,我其实觉得这个真不好用,用过Android Studio本身自带,链接第三方依赖库比这个方便。废话不多说,直接上步骤。

Cocoapods安装步骤

一、更新Ruby环境

1
gem update --system

二、换Ruby镜像

1
2
3
gem sources -l  #查看当前镜像
gem sources --remove https://rubygems.org/ #移除当前的镜像 淘宝的Ruby镜像也不更新
gem sources -a https://gems.ruby-china.com #换成这个

三、安装CocoaPods

1
sudo gem install cocoapods

上面如果没有权限需要输入 sudo gem install -n /usr/local/bin cocoapods ,横下以下是各种折腾。


如果出现: MacBook-Air ~ % sudo gem install cocoapods
ERROR: Could not find a valid gem ‘cocoapods’ (>= 0), here is why:
Unable to download data from https://rubygems.org/ - timed out (https://rubygems.org/specs.4.8.gz)

请检查 gem sources -l是否是 https://gems.ruby-china.com

如果再出现各种奇葩问题,这儿可以卸载 gem 安装的所有东西然后再重新安装。

可以在终端输入 sudo rm -rf /usr/local/bin/pod 然后在查看gem list看到中间部分以cocoapods开头的列表

cocoapods (1.9.2)
cocoapods-core (1.9.2)
cocoapods-deintegrate (1.0.4)
cocoapods-downloader (1.3.0)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-stats (1.1.0)
cocoapods-trunk (1.5.0)
cocoapods-try (1.2.0)

这儿以第一个为例挨个卸载,sudo gem uninstall cocoapods -v 1.9.2 sudo gem uninstall cocoapods-core -v 1.9.2 后面的类似。删除过后再执行重新sudo gem install cocoapods

上面的完成过后再次执行下面的命令,关键的时候来了,呵呵呵…. (网上说 这个过程是漫长的,要有耐心),这哪是慢,根本不行好么,坑死人了。

1
pod setup

看别人说pod setup 过后会出现 Setting up CocoaPods master repo这个,这个至少会去下载,我特么直接出现Setup completed 这个,无论怎么网上的找方法试过了都没折,自己的笔记本上再 活动监视器 搜索git至少还在 10k/s再走,然后之前回家等了两三个小时 然后居然直接中断了,什么垃圾东西呀,这是人干的事么。

我公司这一台什么都没有下载直接Setup completed 说完成了,clone repo到本地成功,压根就没有下载下来。然后我在电脑上执行 pod search AFNetworking

是100%的出现 [!] Unable to find a pod with name, author, summary, or description matching AFNetworking

关于出现这个的帖子https://www.cnblogs.com/huaida/p/12701080.html,大部分说是因为缓存,然后删除~/Library/Caches/CocoaPods/search_index.json,这根本没用好么,然后试了一下这个

1
2
3
4
5
pod repo remove master
cd ~/.cocoapods/repos
git clone https://github.com/CocoaPods/Specs.git master
rm ~/Library/Caches/CocoaPods/search_index.json
pod search afnetworking

这个执行到从git仓库拉一样的慢成”苟“我去这个也太受不了了,恶心人么,这不是。

冷静一下 pod setup本身是把这个 https://github.com/CocoaPods/Specs.git 地址中的文件clone下来,这儿慢的原因就是从git上下载,后来了解到可以直接把这个仓库克隆到国内的码云https://gitee.com ,这样子再从码云上clone下来。

然后这个是从git导入到码云上的地址: https://gitee.com/Kziwws/Specs.git ,然后把这句git clone https://github.com/CocoaPods/Specs.git master 换成 git clone https://gitee.com/Kziwws/Specs.git,这个clone 到 ~/.cocoapods/repos 这个目录。这下速度从三四个小时变成七八分钟就完成了。

1
2
3
@MacBook-Pro ~ % cd ~/.cocoapods/
@MacBook-Pro .cocoapods % du -sh *
1.6G repos #这大概1.81G呢 你得稍微等一下

其实上面 pod setupgit clone https://gitee.com/Kziwws/Specs.git ~/.cocoapods/repos/master等效的。如果上面不行用这个句命令。


经过上面一些列的折腾基本上一会下载完成了,然后你再输入 pod search AFNetworking,如果出现 Creating search index for spec repo ‘master’.. Done! 一直等待。你就安静等一会儿。

如果出现:

[!] CDN: trunk URL couldn’t be downloaded: https://cdn.cocoapods.org/all_pods_versions_8_9_b.txt Response: Timeout was reached

或者

[!] CDN: trunk Repo update failed - 3 error(s):

CDN: trunk URL couldn’t be downloaded: https://cdn.cocoapods.org/Specs/a/e/1/XJNetworking/1.0.0/XJNetworking.podspec.json Response: Timeout was reached

CDN: trunk URL couldn’t be downloaded: https://cdn.cocoapods.org/Specs/a/e/1/XJNetworking/1.0.1/XJNetworking.podspec.json Response: Timeout was reached

CDN: trunk URL couldn’t be downloaded: https://cdn.cocoapods.org/Specs/a/e/1/XJNetworking/1.0.2/XJNetworking.podspec.json Response: Timeout was reached

解决:CDN: trunk URL couldn’t be downloaded ,参考一下这篇帖子https://blog.csdn.net/miaopf123/article/details/104406595,然后再 pod search AFNetworking 会出现:

1
2
3
4
5
6
7
8
9
10
11
12
-> AFNetworking (4.0.1)
A delightful networking framework for Apple platforms.
pod 'AFNetworking', '~> 4.0.1'
- Homepage: https://github.com/AFNetworking/AFNetworking
- Source: https://github.com/AFNetworking/AFNetworking.git
- Versions: 4.0.1, 4.0.0, 3.2.1, 3.2.0, 3.1.0, 3.0.4, 3.0.3, 3.0.2, 3.0.1,
3.0.0, 3.0.0-beta.3, 3.0.0-beta.2, 3.0.0-beta.1, 2.7.0, 2.6.3, 2.6.2, 2.6.1,
2.6.0, 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4,
2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3,
2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0,
1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0,
0.7.0, 0.5.1 [master repo] ~

这儿在多说一点,如果经过上面的折腾还是没有成功,你直接https://gitee.com/Kziwws/Specs.git 下载这个到桌面然后zip大概 367M,也相对挺快的。

把右边的标记1~8的文件拷贝到左边的目录里,然后右边标记的零的如果直接拷贝不过来的,直接用记事本挨个打开把内容拷贝到右边来的文件相应的里面来。然后执行 pod repo remove trunk,基本就可以使用了。


四、CocoaPods基础使用

一、找到项目目录

1
2
3
cd /Users/wenshuang/Desktop/testPodDemo
touch Podfile #项目里会出现Podfile文件
vim pod file #开始打开Podfile文件

二、输入i 开始编辑,输入所需要到的第三方库,如:

1
2
3
4
platform :ios,‘8.0’
target‘testPodDemo’do
pod‘AFNetworking’,‘~> 3.0.4’
end

三、在按 esc 然后输入 : 然后再输入wq 然后回车,保存。

四、在终端里输入

1
pod install

然后等一会就会出现

1
2
3
4
5
6
7
8
9
10
MacBook-Pro testPodDemo % pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (3.0.4)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `testPodDemo.xcworkspace` for this project from now on.

Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.

然后再用Xcode重新打开 testPodDemo.xcworkspace 这个文件就可以了。