CocoaPods折腾纪实-2020-12-29

最近刚升级了macOS Big Sur,第二天接手了一个完成度90%的iOS项目。代码下载之后,关于CocoaPod部分完全不对。经过一番折腾,卸载了本mac上的CocoaPod,可是再装的时候就遇到了问题。只能继续折腾。

Ruby环境

CocoaPods是一个用Ruby写的、负责管理iOS项目中第三方开源库的工具。Mac电脑自带Ruby环境,可以打开终端先看一下版本:ruby -v

hello:~ zxs$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]

看版本是2.6.3,是2019年4月16日的版本,现在是2020年12月,1年多前的版本,不算高也不算低,可以先用着试试。

检查Ruby镜像源

一般要求是ruby-china比较好,这是Ruby在国内的镜像,速度相对国外的要快一些。

hello:~ zxs$ gem sources -l
Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2
*** CURRENT SOURCES ***

https://gems.ruby-china.com

镜像源没问题,这个以前就更换过。可是这次多出了这些是什么鬼?Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2

安装CocoaPod不成功

hello:~ zxs$ sudo gem install -n /usr/local/bin cocoapods
Password:
Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2

又出现这个鬼:Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2

长时间卡在这里了,怎么办?

  • 直接Control + C强行退出是可以的,可是CocoaPod没装上啊
  • 后来解决了Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2,采用sudo gem install -n /usr/local/bin cocoapods仍然是长时间没有反应,需要Control + C 强行退出
  • 虽然这次由于等的时间长,最后Control + C强行退出了,但是安装的命令其实没错。

  • 是网络问题,还是上面那个Ruby异常影响的,谁也说不清楚。

解决Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2

提示里面已经有,就是gem pristine ffi --version 1.12.2,只是由于权限问题,前面要加sudo

hello:~ zxs$ sudo gem pristine ffi --version 1.12.2
Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2
Restoring gems to pristine condition...
Building native extensions. This could take a while...
Restored ffi-1.12.2

gem pristine --all实际试过,这个直接用是没有效果的;

  • 升级Gem到最新:
hello:~ zxs$ sudo gem update --system
Updating rubygems-update
Fetching rubygems-update-3.2.3.gem
Successfully installed rubygems-update-3.2.3
Parsing documentation for rubygems-update-3.2.3
Installing ri documentation for rubygems-update-3.2.3
Installing darkfish documentation for rubygems-update-3.2.3
Done installing documentation for rubygems-update after 87 seconds
Parsing documentation for rubygems-update-3.2.3
Done installing documentation for rubygems-update after 0 seconds
Installing RubyGems 3.2.3

检查一下版本号:

hello:~ zxs$ gem -v
3.2.3

权限问题

CocoaPod的官网,推荐的命令很简单:

image.png

照这个命令做,会遇到权限问题:

hello:~ zxs$ sudo gem install cocoapods
Password:
Fetching cocoapods-1.10.0.gem
Fetching nanaimo-0.3.0.gem
Fetching xcodeproj-1.19.0.gem
Fetching cocoapods-downloader-1.4.0.gem
Fetching public_suffix-4.0.6.gem
Fetching addressable-2.7.0.gem
Fetching activesupport-5.2.4.4.gem
Fetching cocoapods-core-1.10.0.gem
Successfully installed nanaimo-0.3.0
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/bin directory.

ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory. 这句话直接说明了这样做缺少访问权限。那怎么办?

再次尝试

直接ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory. 百度,找到了一篇文章,解释得非常清楚:
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /

  • 这里提到的安装(解决权限问题)命令sudo gem install -n /usr/local/bin cocoapods和前面试过的一模一样。再试一次,也还会卡一段较长时间,多等一会。这次尝试算是成功了:
hello:~ zxs$ sudo gem install -n /usr/local/bin cocoapods
Password:
Successfully installed xcodeproj-1.19.0
Successfully installed cocoapods-downloader-1.4.0
Successfully installed public_suffix-4.0.6
Successfully installed addressable-2.7.0
Successfully installed activesupport-5.2.4.4
Successfully installed cocoapods-core-1.10.0
Successfully installed cocoapods-1.10.0
Parsing documentation for xcodeproj-1.19.0
Installing ri documentation for xcodeproj-1.19.0
Parsing documentation for cocoapods-downloader-1.4.0
Installing ri documentation for cocoapods-downloader-1.4.0
Parsing documentation for public_suffix-4.0.6
Installing ri documentation for public_suffix-4.0.6
Parsing documentation for addressable-2.7.0
Installing ri documentation for addressable-2.7.0
Parsing documentation for activesupport-5.2.4.4
Installing ri documentation for activesupport-5.2.4.4
Parsing documentation for cocoapods-core-1.10.0
Installing ri documentation for cocoapods-core-1.10.0
Parsing documentation for cocoapods-1.10.0
Installing ri documentation for cocoapods-1.10.0
Done installing documentation for xcodeproj, cocoapods-downloader, public_suffix, addressable, activesupport, cocoapods-core, cocoapods after 7 seconds
7 gems installed
  • 通过查看pod版本号的方式验证一下是否安装成功:
hello:~ zxs$ pod --version
1.10.0
  • 其他的检查命令也可以试一下,至少验证CocoaPod本身是正常的
hello:~ zxs$ pod setup
Setup completed
hello:~ zxs$ pod repo list

master
- Type: git (master)
- URL:  https://github.com/CocoaPods/Specs.git
- Path: /Users/zxs/.cocoapods/repos/master

trunk
- Type: CDN
- URL:  https://cdn.cocoapods.org/
- Path: /Users/zxs/.cocoapods/repos/trunk

查找著名的AFNetworking

image.png

小结

  • Mac操作系统升级到当前时间点最新的v11.1 macOS Big Sur,会导致自带的Ruby系统抛出异常:Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2

  • 采用提示信息可以解决这个小问题(也不一定是问题),只是会遇到权限问题,需要在命令前加个sudo;执行一下:sudo gem pristine ffi --version 1.12.2这个烦人的异常提示就没有了。

  • v11.1 macOS Big Sur自带的Ruby(版本2.6.3)可用,Ruby Gem正常可用;以前切换的Ruby镜像源https://gems.ruby-china.com/也仍然可用;CocoaPod也能正常安装,基本功能正常。

参考文章

CocoaPods安装方法-2020.12.18

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

推荐阅读更多精彩内容