CocoaPods小记

最近Mac 10.13又出了个小坑,更新完之后POD就不能用了,只能重新安装一次。

安装


因为Mac OS El Capitan操作权限的问题我们在安装pods的时候需要指定一个路径,比如usr/local/bin,另外就是网络封锁的问题最好是将原本的ruby源修改以下。

setup的过程可能很慢,主要是因为第一次安装它会去下载repo库,这玩意儿有几百兆接近1个G,如果有其他小伙伴的电脑已经安装好了,可以直接从 ~/.cocoapods/ 里面拷贝过来。

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

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

sudo gem update -n /usr/local/bin --system

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

pod setup

更新


如果发现Pods上搜索出来的代码库与GitHub上面的不同步,可以尝试更新下Pods的repo库。

pod repo update

如果是想更新pods的版本,可以通过类似重新安装的形式。

sudo gem update -n /usr/local/bin  --system

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

pod setup

卸载


用uninstall命令就可以卸载pods了。

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

如果你安装了多个Pods版本,这时候就需要选择一个要卸载的版本:

Select gem to uninstall:

1. cocoapods-0.37.2

2. cocoapods-0.39.0

3. All versions

> 3

使用


Pods的使用方式很简单,不过需要注意字符编码的问题,UTF-8。打开终端进入到你的工程目录(与.xcodeproj文件同级),使用vim命令创建pod管理文件:

cd /具体工程路径

vim podfile

按 i 键进入编辑模式,键入(platform和 : 之间是要有空格的):

platform :ios, '7.0'

target "项目名" do

     pod 'AFNetworking'

end

target xxx do xxx end 的书写方式是在pod 1.0.0之后出现的,现在都是按这种形式了。按esc键退出编辑模式,键入 :wq 回车结束编辑。接下来搜索你想要的库,比如需要引入AFNetworking库,则可以使用search命令在终端进行模糊搜索:

pod search AFNetworking

AFNetworking搜索结果

红色方框的部分是住重要的,版本号可以根据需要选择,具体的格式就是

pod '第三方库名称', '~> 版本号'

再次采用vim命令打开podfile文件,按 i 键进入编辑模式,新起一行键入

pod 'AFNetworking', '~> 3.0.0-beta.2'

按esc退出编辑模式,键入 :wq 结束编辑,重点来了。

pod install

install命令执行之后,就会根据你podfile里面的配置开始载入第三方库,同时会在同级目录生成一个 .xcworkspace 文件,以后的项目入口就是这个文件了。

有了这个文件之后,如果想要再编辑podfile文件,就可以直接在xcode里面开干了,只是install命令还是得在终端执行。

需要注意的是,podfile文件的编码格式一定要是UTF-8的,并且每次新增或删除一个第三方库都要执行一次install命令才会生效。

小坑


1. 如果你的项目使用POD管理,并且用到了某个库(比如A),后面又把A库给删除了,编译出现Apple Mach-O link Error的话,可以把项目中的other link flag中的值都删掉,只保留$(inherited)。

2. 如果安装遇到『ERROR:  While executing gem ... (TypeError) no implicit conversion of nil into String 』这种错误,需要先更新下system,Mac10.13之后需要用-n来指定路径。

sudo gem update -n /usr/local/bin --system


后记


总的来说Pods还是很方便的,被Pods管理的第三方库通常会被锁定禁止修改,如果你想要修改第三方库也不是不行,不过对于这种库主页君则是倾向于采用手动导入的方式,避免后面升级库时带来麻烦。

如果你的项目一开始就采用Pods来管理,那就没什么问题。如果是旧项目改造,则需要在other link flag中配置上$(inherited)参数,否则会编译失败。



主页君于 2018.02.23 第四次修订

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

推荐阅读更多精彩内容

  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,723评论 3 51
  • Ruby 安装 要安装cocospods 首先需要安装ruby,可以先安装xcode,再安装macport ,最后...
    山天大畜阅读 1,876评论 0 1
  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 22,031评论 0 39
  • 一. CocoaPods的介绍 什么是CocoaPods?CocoaPods是一个负责管理iOS项目中第三方开源库...
    辉712阅读 3,962评论 0 7
  • 内份感情,随时间慢慢的变成了一种习惯,感觉就像日常不会缺失的部分。。。可是分开了,再怎么不适应,却也回不去了,不是...
    穀咚咚咚阅读 102评论 0 0