2024安装CocoaPods

点赞!!!

都还干着iOS嘛???!!!

背景

新入职公司,分配一台全新MacBook pro,借此机会梳理一下cocoapods的完整安装流程。

cocoapods安装依赖关系

cocoapods安装需要ruby,更新ruby需要rvm,下载rvm需要gpg,下载gpg需要homebrew,所以安装顺序是homebrew->gpg->rvm->ruby-cocoapods,注意这是完整流程,如果只是更新做cocoapods更新操作即可,不需要从第一步开始。

  1. 先安装Homebrew
    2020版mac 安装homebrew失败 极简解决方案
git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask

检测Homebrew是否安装成功
输入

brew --version

返回

Homebrew 4.0.1-24-ge358035-dirty
Homebrew/homebrew-core (git revision 5c8a7bb5c3a; last commit 2023-02-17)
Homebrew/homebrew-cask (git revision 90f1b9d0c9; last commit 2023-02-17)
  1. 更换源,把Ruby官方镜像改为国内镜像
    2.1 检查更新ruby环境,更新gem版本
sudo gem update --system

2.2 查看gem版本

gem -v

注:请尽可能用比较新的 RubyGems 版本,建议 2.6.x 以上。
我目前的版本为2.6.3,安装更新后为3.0.2

2.3 删除镜像

gem sources --remove https://rubygems.org/

2.4 修改镜像

gem sources --add https://gems.ruby-china.com/

2.5 为了验证你的Ruby镜像是并且仅是ruby-china,执行以下命令查看

gem sources -l

2.6 终端显示为如下即为成功,注:确保只有 gems.ruby-china.com 才为成功,如果有其他的请自行百度解决

*** CURRENT SOURCES ***

https://gems.ruby-china.com/
  1. 通过Homebrew安装ruby最新版
    3.1 查看 ruby 的安装目录(用处不大)
which -a ruby

注:执行以上命令后会输出 2 行,

  1. 其中 /usr/local/opt/ruby/bin/ruby 是通过 Homebrew 安装的,
  2. 而 /usr/bin/ruby 是 Mac 自带的 ruby,
  3. 请不要随便删除自带的 ruby, 否则会出现问题(这个本人也没尝试只是老外博文里说的)

通过 HomeBrew安装的版本:ruby 3.2.1 路径:/usr/local/opt/ruby/bin/ruby
Mac 自带版本: ruby 2.6.3 路径:/usr/bin/ruby

3.2 通过 Homebrew 安装 ruby

brew install ruby

3.3 使用以下命令查看 ruby 版本

ruby -v

如果成功安装之后使用命令查看 ruby 版本发现仍然是 Mac 自带的版本,类似如下

ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]

3.4 此时只需把 ruby 3.2.1 可执行文件导入全局变量 PATH 中即可,使用如下命令:

echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

3.5 再次查看 ruby 版本

ruby -v

显示以下命令行即为成功

ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-darwin20]

至此 ruby 3.2.1 安装成功

Mac下升级ruby至最新版本

  1. 这时候才正式开始安装CocoaPods
    4.1 为了安全起见,执行以下命令,卸载原有的CocoaPod(全新安装用不到)
sudo gem uninstall cocoapods

cocopods彻底卸载重新安装
删除CocoaPods

4.2 执行以下命令来重新安装cocoapod

//Mac OS X 10.11前
sudo gem install cocoapods
//Mac OS X 10.11后
sudo gem install -n /usr/local/bin cocoapods

4.3 如果没有权限执行pod,执行以下命令,赋予/usr/local/bin给予执行与读取权限

sudo chmod +rx /usr/local/bin/

4.4 检测pod是否安装成功

pod --version

ikuai@iKuaideMacBook-Air ~ % pod --version
1.11.3
ikuai@iKuaideMacBook-Air ~ %
4.5 更新Podspec索引文件
安装成功后 执行

pod setup

pod setup作用

将所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目录下。所有的第三方开源库的Podspec文件都托管在https://github.com/CocoaPods/Specs,我们需要把这个Podspec文件保存到本地,这样才能让我们使用命令pod search 开源库搜索一个开源库,怎样才能把github上的Podspec文件保存本地呢?那就是 pod setup

执行pod setup时,CocoaPods 会将第三方的podspec索引文件更新到本地的~/.cocoapods/repos目录下。

但是第一次执行pod setup时,这个github的Podspec索引文件比较大,有 300M 左右(以后会越来越大的),所以第一次更新时非常慢.要耐心等待…..

最后当出现 Setup completed 表示setup完成。

如果遇到如下报错

[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --progress

Cloning into 'master'...
remote: Counting objects: 2016093, done.        
remote: Compressing objects: 100% (555/555), done.        
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

可能是Git的传输字节限制引起的,这时候使用 git config -l,查看Git配置,如下图,红色框是我配置的传输字节大小。


字节限制
解决方法:修改传输字节限制,使用以下方法。后面的限制数字,可以自己定大小(524288000,相当于500M)

git config --global http.postBuffer 1048576000

执行后在

git config -l

看看是否修改成功。

4.6 pod setup太慢终极解决办法
pod setup的本质就是将
https://github.com/CocoaPods/Specs.git
的代码下载到~/.cocoapods/repos/master
当我们去执行pod setup的时候,会发现那是一个相当的慢。估计一天的时间都浪费再这上面。这是因为使用的国外的镜像,只要使用国内的镜像就很好的解决了。
只要使用

cd ~/.cocoapods/repos

ikuai@iKuaideMacBook-Air ~ % cd ~/.cocoapods/repos
cd: no such file or directory: /Users/ikuai/.cocoapods/repos
ikuai@iKuaideMacBook-Air ~ %
如果没有则创建

mkdir -p ~/.cocoapods/repos/
cd ~/.cocoapods/repos

备注:cocoapods 是一个隐藏目录
隐藏文件所在的目录按键盘上面的shift+cmmand+. ,接着看到隐藏文件夹内凡是前面带有小点的隐藏文件,或者是显示淡蓝色的文件都是隐藏文件,再次按上面的键隐藏。

然后 执行

pod repo remove master

来删除master文件
再执行

//new
git clone --depth 1 https://github.com/CocoaPods/Specs.git master
//old
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master

你会发现那速度杠杠的

pod setup

成功后会生成~/Library/Caches/CocoaPods/search_index.json文件。
终端输入

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

删除~/Library/Caches/CocoaPods目录下的search_index.json文件
删除成功后终端输入:

pod search AFNetworking(不区分大小写)

输出:Creating search index for spec repo 'master'.. Done!,稍等片刻就会出现所有带AFNetworking字段的类库出现。


4.7 CocoaPods 升级1.8.4的坑 CDN: trunk Repo update failed
由于项目是用CocoaPods管理,CocoaPods 1.8将CDN切换为默认的spec repo源,并附带一些增强功能!CDN支持最初是在1.7版本中引入的,最终在1.7.2中完成。 它旨在大大加快初始设置和依赖性分析。
解决办法:
(1)podfile添加source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
(2)pod repo list 查看一下源列表
(3)pod repo remove trunk 移除trunk源

当执行 pod install 或者 pod update 后出现 Cloning spec repo cocoapods from https://github.com/CocoaPods/Specs.git 卡住情况,如图:


其实并没有卡住,只是因为网速慢的原因导致下载 spec repo cocoapods 速度慢,给人感觉像是卡住了。你可以到系统的“活动监视器”中查看“网络”这块,会发现有一些东西正在被下载,有一个 “git-remote-https” 就是负责下载 spec repo cocoapods 的,所以慢慢等待吧!

4.8 CocoaPods的具体使用
新建一个Xcode工程,使用终端cd到工程目录下
创建Podfile文件:
pod init
之后就可以在项目目录里看到一个Podfile文件
打开Podfile文件:
open Podfile
添加:

source ‘https://github.com/CocoaPods/Specs.git’
platform :ios, '9.0'
target '项目名称' do
  pod 'AFNetworking'
end

保存后退出
开始下载:

pod install

Pod安装需要ruby,ruby需要rvm
macOS Catalina 10.15 十分钟安装 CocoaPods
4. 更新Podspec索引文件

iOS 创建新项目使用pod install提示警告的几个解决办法

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

推荐阅读更多精彩内容