CocoaPods使用总结

更新:

Mac M1版本安装:

1.Finder应用程序中选中终端,command+i显示简介
2.勾选使用Rosetta打开
3.执行(安装过就下一步)

 sudo gem install cocoapods 

4.执行:

sudo arch -x86_64 gem install ffi
arch -x86_64 pod install

Intel版

安装准备:

在终端中操作,首先通过3和4检查ruby源和版本

  1. 移除现有Ruby默认源
gem sources --remove https://rubygems.org/
  1. 使用新的源
gem sources -a  https://gems.ruby-china.com/

"https://ruby.taobao.org/" 不能用了

  1. 验证新源是否替换成功
gem sources -l
  1. 检查 gem 版本号
sudo gem -v

升级gem

sudo gem update —system

如果报错:

ERROR: While executing gem ... (OptionParser::AmbiguousOption)
ambiguous option: -system

安装RVM:

 \curl -sSL https://get.rvm.io | bash -s stable --ruby

查看Ruby版本:

ruby -v

Ruby已知版本:

 rvm list known

安装Ruby:

rvm install 2.4.1

安装CocoaPods

(1)

sudo gem install -n /usr/local/bin cocoapods

输入电脑密码, 回车等待.

ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.

current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.12.2/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20200317-4203-18pus5p.rb extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/include/ruby.h

You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.

因为ruby版本低,执行:

brew upgrade ruby

(2)

pod setup

需要一段时间.

如果安装失败 ~/.cocoapods 里面是空的,就需要重新setup.
命令如下:
pod repo remove master
pod setup
如果安装成功,~/.cocoapods下文件夹会有几百M.

(3)创建Podfile文件,在终端cd到工程文件夹内,下边(1)和(2)任选其一:
1).新建文件 “Podfile”,终端执行

vim Podfile

写入2)的内容并保存.

提示: 终端vim文件按 i 可编辑 , esc 退出编辑, : wq 可保存退出

2).终端执行:

pod init

然后在Xcode中打开podfile文件,如果用TextEdit打开修改Podfile, pod install后会报警告:

[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

里面的样式如下:

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'  // 最低支持的系统版本

target 'targetName' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!

# Pods for sync
// pod 'AFNetworking'  
end

(4)搜索三方库:
pod search 库名

(5)导入第三方库
pod update(比较慢)
或者pod install
或者pod update --no-repo-update

如果不想在pod update的时候升级repo库 ,可以忽略掉,使用pod update --no-repo-update,比较快, 但是如果github上pods的三方库有新版本了,你本地搜索到的还是旧版本,新版本是无法装配的,所以每隔一段时间最好执行一下pod repo update
--verbose是打印详细信息.

出现Setting up CocoaPods master repo,cd 到~/.cocoapods,如果repos文件夹大小一直没有变化, 因为墙阻挡了cocoapods.org。

oschina是国内的服务器, 可以用它们CocoaPods索引库的镜像:

  • pod repo remove master
  • pod repo add master http://git.oschina.net/akuandev/Specs.git
  • pod repo update

第二条命令执行的时候会比较耗时,要去把整个specs仓库clone一下,下载到 ~/.cocoapods里, cd 到~/.cocoapods,
du -sh *命令来查看文件大小,需要等待一段时间,这个目录最终大小是几百M,每个CocoaPods版本不同。

(6)删除三方库:
在Podfile文件, 删除想要删除的三方库(或者前面加#注释掉),然后终端执行pod installpod update

删除一些三方库后编译可能会报错: library not found for -l库名,解决:
在Build Settings中搜索Other Linker Flags,去掉-l"库名"。
(有时不管用,应该是cocoapods的版本问题)

更新CocoaPods版本:

sudo gem update cocoapods 

查看版本:

pod --version

导入三方库报错:

[!] 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 ```

尝试解决:

尝试1: 根据提示,跑一下

pod repo update --verbose

尝试2:如果还是出现原来问题,升级CocoaPods版本

sudo gem update cocoa pods

尝试3:如果升级还是出现原来的问题,那么重装CocoaPods .

  • 首先查看本地装了关于cocoapods的哪些东西,在终端输入
gem list --local | grep cocoapods
  • 接着全部卸掉
sudo gem uninstall cocoapods
  • 再安装
sudo gem install cocoapods

尝试4:如果问题依旧,那么清除缓存,清除命令:

sudo rm -fr ~/Library/Caches/CocoaPods/
sudo rm -fr ~/.cocoapods/repos/master
pod setup

还不行的话就把当前 Pods 目录清空:

sudo rm -fr Pods/
sudo gem install -n /usr/local/bin cocoapods
pod setup 

看看还有没有报错.

CocoaPods的使用补充:

使用CocoaPods来添加第三方类库, 无论是执行pod install还是pod update, 如果都卡在了Analyzing dependencies不动, 原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库, 加一个参数可以省略这一步, 命令如下:

  • pod install --verbose --no-repo-update
  • pod update --verbose --no-repo-update

pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。 但是 pod update会更新所有的类库,获取最新版本的类库。平时一般使用pod update --no-repo-update更新,定期使用pod update更新.

Cocoapods降低版本及卸载

一. 移除pod组件
1.这条指令会告诉你Cocoapods组件装在哪里 :
which pod
2.你可以手动移除这个组件 :
sudo rm -rf 路径
二. 移除 RubyGems 中的 Cocoapods程序包
Q: RubyGems是什么?
A: RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。
1.查看gems中本地程序包
gem list
2.移除程序包
sudo gem uninstall cocoapods -v 要移除的版本号
3.安装指定版本的Cocoapods
sudo gem install cocoapods -v 要安装的版本号

终端走代理:

export http_proxy=http://proxyAddress:port
Example:export http_proxy=http://127.0.0.1:1087

Homebrew官网

https://brew.sh/index_zh-cn.html

RVM

https://rvm.io/rvm/install

唐巧博客
用CocoaPods做iOS程序的依赖管理

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

推荐阅读更多精彩内容

  • 连续第四天写晨思是什么样的感受? 这可能是去年11月份以来第一次连续四天写晨思,当然以前也叫晨间日记等。是...
    博子阅读 138评论 0 0
  • 长相思 望京路上望故乡 朝风凉 夜风凉 落叶知秋念故乡 斜阳遍地黄 望京长 (望京路) 望街长 常梦家中米饭香 举...
    can_54b4阅读 233评论 0 0
  • 我的这一周生活可真多姿多彩!不过,想起下星期三要考试,又紧张起来。但这一周我依然快乐!因为星期二,我们班本...
    星皓妈妈阅读 463评论 0 1