2020年CocoaPods安装和使用并遇到的坑

本人电脑系统版本为:10.15.4 Xcode版本为:Version 11.4 (11E146)

第一步:先把ruby源搞定。

安装CocoaPods,需要ruby环境,然而Mac系统默认会安装好ruby环境。打开Mac终端输入:

gem sources -l //查看ruby源

默认情况下:会显示

https://rubygems.org/

ruby源在墙内是访问不到的,需要置换为国内,原来一直用的是淘宝的

gem sources -a https://ruby.taobao.org/

由于淘宝源不更新,所有不建议使用,现在用下面这个

//删除之前使用的淘宝
gem sources --remove  https://ruby.taobao.org/
gem source -a https://gems.ruby-china.com

只有在终端中出现下面文字才表明你上面的命令是成功的:

https://gems.ruby-china.com added to sources

为了验证你的Ruby镜像是并且仅是gems.ruby-china,可以用以下命令查看:

gem sources -l        //检测是否成功

只有在终端中出现下面文字才表明你上面的命令是成功的:

https://gems.ruby-china.com

第二步: 升级Gem.

Gem是来管理Ruby标准包.

sudo gem update --system   //升级gem
gem -v           //查看版本

目前查看gem版本为

xue@promote ~ % gem -v
3.0.3

不升级在第三步可能,会报很多错误的,因为Gem版本太低,无法安装第三步,安装CocoaPods

第三步:安装CocoaPods

sudo gem install cocoapods  // Mac OS X 10.11前  输入这一条
sudo gem install -n /usr/local/bin cocoapods  //Mac OS X 10.11后   输入这一条 

安装成功后是这样的:
Done installing documentation for thread_safe, tzinfo, concurrent-ruby, i18n, activesupport, nap, fuzzy_match, httpclient, algoliasearch, ffi, ethon, typhoeus, netrc, cocoapods-core, claide, cocoapods-deintegrate, cocoapods-downloader, cocoapods-plugins, cocoapods-search, cocoapods-stats, cocoapods-trunk, cocoapods-try, molinillo, atomos, colored2, nanaimo, xcodeproj, escape, fourflusher, gh_inspector, ruby-macho, cocoapods after 40 seconds
32 gems installed

查看版本:如果有版本号,则说明已经安装成功

   pod --version  //目前我的版本号为:1.9.1

成功后,输入

pod setup   //这条命令是将Github上的开源库都托管都安装Podspec索引安装到到本地

成功:Setup completed

检测是否安装成功:可以利用搜索AFNetworking来检测是否能搜索到。

检测结果:

pod search AFNetworking
[!] Unable to find a pod with name, author, summary, or description matching `AFNetworking`

看来搜索不到结果,此时我们可以用
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
Cloning into '/Users/gao/.cocoapods/repos/master'...
remote: Enumerating objects: 1130099, done.
remote: Total 1130099 (delta 0), reused 0 (delta 0)iB | 4.28 MiB/s
Receiving objects: 100% (1130099/1130099), 408.72 MiB | 2.84 MiB/s, done.
Resolving deltas: 100% (563214/563214), done.
Checking out files: 100% (141834/141834), done.

以上操作可能要输入账号密码。
第二种方式:
1, pod repo remove master

2, cd ~/.cocoapods/repos

3, git clone --depth 1 https://github.com/CocoaPods/Specs.git master

4, rm ~/Library/Caches/CocoaPods/search_index.json

5, pod search afnetworking

完成后,再次检测是否能搜索到AFNetworking

pod search AFNetworking
Creating search index for spec repo 'master'.. Done!

第一次会出现上面的 Creating search index for spec repo 'master'.. 等到 出现 Done 后 就会出现我们搜索的结果,再次输入命令就不会出现这行代码了,直接就能搜索了。


搜索AFNetworking@2x.png

到此就代表 CocoaPods 真正安装成功!

第四步:利用cocoapods来安装第三方框架

  1. 进入要安装框架的项目的.xcodeproj同级文件夹
  2. 在该文件夹中新建一个文件Podfile, 执行如下命令
pod init 
或者
touch Podfile

pod init首先需要判断当前目录有没有 XCODEPROJ 项目,如果没有直接报错;若果有单个 XCODEPROJ 项目,会直接创建一个 Podfile 文件;如果有多个XCODEPROJ 项目,需要指定一个项目,否则会报错:

[!] Multiple Xcode projects found, please specify one

或者手动 新建文件Podfile ,然后编辑Podfile 可执行 vim Podfile

vim Podfile

Podfile文件中, 写入以下内容并保存 。提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)
在文件中输入自己需要的第三方项目库,我们以 AFNetworking 为例

platform :ios, '8.0'
target 'Block--Demo' do
  pod 'AFNetworking', '~> 3.1.0'
end

platform : ios, '8.0'代表当前AFNetworking支持的iOS最低版本是iOS 8.0,
MyApp : 就是你自己的工程名字,
pod 'AFNetworking', '~> 3.1.0'代表要下载的AFNetworking版本是3.1.0及以上版本,还可以去掉后面的'~> 3.1.0',直接写pod 'AFNetworking',这样代表下载的AFNetworking是最新版。
3:执行pod,终端输入 pod install

pod install

此处有坑......... 安装时候提示如下信息,找了很久找到方法解决

➜  Block--Demo pod install
Analyzing dependencies
Cloning spec repo `cocoapods` from `https://github.com/CocoaPods/Specs.git`
[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `cocoapods`.
You can try adding it manually in `/Users/xue/.cocoapods/repos` or via `pod repo add`.

解决以上问题方法,查看 pod list

➜  ~ pod repo list

master
- Type: git (master)
# Uncomment the next line to define a global platform for your project
- URL:  https://git.coding.net/CocoaPods/Specs.git
- Path: /Users/xue/.cocoapods/repos/master
1 repo

发现master 的 URL为https://git.coding.net/CocoaPods/Specs.git
并不是以前的 https://github.cn/CocoaPods/Specs.git
于是在Podfile中果断替换source 如下图

Podfile@2x.png

再次 pod install 就可以成功。

4.导入第三方库
--no-repo-update : 不更新仓库,迅速加载第三方框架

pod install --no-repo-update
pod update --no-repo-update

第五步,CocoaPods 中删除不需要的第三方库

1: 打开Podfile, 找到不需要的类库, 直接删除该类库信息
比如要删除SDWebImage库 ,直接去Podfile中 pod 'SDWebImage',’~> 4.0.0'


Podfile@2x.png

2 :打开终端cd到当前项目的根目录下重新执行

pod update --no-repo-update

3 :更新完成就删除成功。

跳过pod setup快速安装

在网络不允许的情况下,执行pod setup这一步, 感觉很慢.....
前面说了,pod setup 这条命令是将Github上的开源库都托管都安装Podspec索引安装到到本地. 简单说就是下载一个包,到本地,也就是这个东西

master@2x.png

如果你同事电脑上有安装好,你其实可以从你同事电脑上拷贝过来,直接放到该路径就OK了.
如果你身边没有装好的CocoaPods的朋友,可以访问这个链接
https://github.com/CocoaPods/Specs (github所有的第三方开源库的Podspec文件都托管在这里,这也是你pod setup所要下载的).
选择Download ZIP. 解压后为这个样子
image.png

对比上图,Specs-master改名为master 放在 ~/.cocoapods/repos 路径即可.

~/.cocoapods/repos 这个路径是在执行 pod setup生成的,所以电脑无法前往此路径是,建议先pod setup下,然后关闭掉即可生成路径.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容