Cocoapods

一. 什么是 Cocoapods?

CocoaPods是一个负责管理iOS项目中第三方开源库的工具,CocoaPods的项目源码在Github上管理.
开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间,在iOS开发中经常会用到第三方库如AFNetworking,SDWebImage等,在使用第三方库时,你除了要导入源码外,集成这些依赖库还需要我们手动去配置,还有当这些第三方库发生了更新,还需要手动去更新项目,这就显得非常麻烦.CocoaPods就是为了解决这个问题而生的,通过CocoaPods,我们可以将第三方的依赖库统一管理起来,配置和更新只需要通过简单的几行命令即可完成.

二. 安装cocoapods

(1) 升级Ruby (cocoapods使用Ruby编写)

$sudo gem update —system

(2)更新Ruby源

首先,检查一下你的ruby源
$ gem sources -l
默认情况下,终端应该返回如下信息:
*** CURRENT SOURCES ***

https://rubygems.org/


当然这个源在墙内是访问不到的,因此我们需要删除此源并添加一个可以在国内访问到的镜像

$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/


知道你按照网上写的为什么不对吗?因为你在网上搜到的基本上都是访问的淘宝镜像(如下语句) ---不要执行!!!

$ gem sources -a http://ruby.taobao.org/


然而淘宝却已经将RubyGems镜像的管理工作交由RubyChina负责

banben.png

并明确指出让我们使用https://gems.ruby-china.org/
此刻再次查看ruby源

$ gem sources -l
终端返回如下信息:
*** CURRENT SOURCES ***

https://gems.ruby-china.org/


(3)安装cocoapods

$ sudo gem install cocoapods 
$ pod setup

三. Cocoapods使用

(1) 创建工程cocoapodsDemo
(2) 找到项目所在路径:

$ cd /users/xbk/Desktop/cocoapodsDemo


(3) 搜索需要的库(将配置信息(pod 'AFNetworking', '~> 3.1.0')复制,然后依次按esc wq键退出):

$ pod search afnetworking 

(4) 建立podfile文件:

$ touch podfile


(5) 打开podfile文件:

$ open -e podfile


(6) 在打开的podfile中配置文本信息:(复制第三步查询到的 pod 'AFNetworking', '~> 3.1.0' )

platform:ios,‘7.0’
target '项目名' do
pod 'AFNetworking', '~> 3.1.0' 
end


(7) 在中断输入:

$ pod install


(8) 继续添加别的第三方库
依次执行(3)、(5)、(6)、(7)步.
(9) 删除cocoapods中的一个或多个类库

platform:ios,‘7.0’
target '项目名' do
pod 'AFNetworking', '~> 3.1.0' 
pod 'Masonry', '~> 1.0.2'(直接删除该行,如果想降低版本,直接修改1.0.2为你想要的版本)
end


然后执行pod install 发现Masonry被成功删除

(10) 更新pods中的第三方库文件

$ pod update

四. 删除cocoapods

删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹
删除xcworkspace文件
使用xcodeproj文件打开工程,删除Frameworks组下的   Pods.xcconfig及libPods.a引用
在工程设置中的Build Phases下删除Check Pods Manifest.lock及Copy Pods Resources

五. 使用cocoapods过程中你可能遇到的问题

(1) podfile升级之后到最新版本为1.1.1后,pod里的内容必须明确指出所用第三方库的target(项目名),否则会出现The dependency '' is not used in any concrete target这样的错误
以前错误的姿势:

platform:ios,'7.0'
pod 'AFNetworking', '~> 3.1.0' 
pod 'Masonry', '~> 1.0.2'


现在正确的姿势应该是:

platform:ios,'7.0'
target '项目名' do
pod 'AFNetworking', '~> 3.1.0' 
pod 'Masonry', '~> 1.0.2'
end


(2) 使用Cocoapods 导入第三方的资源时,出现如下警告:

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.
先看看错误的写法

platform:ios,'7.0'
target ‘项目名’ do(看这里,拼音(文本)浮下的单引号)
pod 'AFNetworking', '~> 3.1.0' 
pod 'Masonry', '~> 1.0.2'
end


正确的写法

platform:ios,'7.0'
target '项目名' do(看这里,英文符下的单引号)
pod 'AFNetworking', '~> 3.1.0' 
pod 'Masonry', '~> 1.0.2'
end


(3)升级OS X EI Capiton之后,发现CocoaPods无效了,运行pod后显示:"pod: command not found"的错误。

解决方法:

  1. 执行命令"sudo gem uninstall cocoapods",卸载原有的CocoaPod(选择All versions项)
  2. 执行命令"sudo gem install -n /usr/local/bin cocoapods" 来重新安装cocoapod (此时运行pod命令如果还是报错,则执行步骤 3)
  3. 如果没有权限执行pod,执行命令"sudo chmod +rx /usr/local/bin/",赋予/usr/local/bin给予执行与读取权限.
今天执行 pod install 突然报错

-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory


这是Mac升级系统导致,当你的Mac系统升级为 high siera的时候,别忘记更新cocoapods.

执行命令:
$ sudo gem update --system
$ sudo gem install cocoapods -n/usr/local/bin

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

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 21,405评论 0 39
  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,630评论 3 51
  • Ruby 安装 要安装cocospods 首先需要安装ruby,可以先安装xcode,再安装macport ,最后...
    山天大畜阅读 1,840评论 0 1
  • 本没有同样的两片树叶, 奈何让万物再来一次比较? 景随季节变换, 境由心生。 用相片记录美景, 用美景浸润生活, ...
    清竹霄霄z十只鹰贸易阅读 189评论 0 0
  • 有那么一段时间,现实交织回忆。他们杂乱无章的排列,在我脑海里不停的连线。真的很乱。 大概是困意来袭。晚安。
    Seagulltough阅读 148评论 0 0