CocoaPods-iOS开发必备

从事iOS开发的小伙伴,应该会听说过CocoaPods,它的使用可以为iOS开发以及维护提升效率。

CocoaPods

什么事CocoaPods?

CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 28 thousand libraries and is used in over 1.7 million apps. CocoaPods can help you scale your projects elegantly
-cocoapods.org

从官网的说明,CocoaPods是Objective-C和Swift工程的依赖包管理工具。类似于Node.js的npm,Java的Maven,或者mac系统的HomeBrew或者Red Hat Linux的 yum等。

为啥要用它?

  • 给项目添加依赖库更方便
  • 对于依赖的更新更便捷

如果使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install就可以了,Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。

想象一下,如果没有Pod,要把项目依赖的十几个甚至几十个依赖挨个下载、拖进工程。如果依赖有升级或更新需要重新下载、再覆盖工程原有的,要是第三方lib之间还存在相互依赖的话...

Pod 的安装

Pod 由Ruby构建,OS X系统默认自带Ruby,所以可以使用系统自带的Ruby安装pod

$ sudo gem install cocoapods

以上是官网上的安装说明,看起来很简单对吧✧(≖ ◡ ≖✿)~
但是,在天朝你会发现,命令执行可能很慢,数小时可能都玩不了,因为我们的墙...我实在不知道Ruby这种东西为什么还要墙呢? 所以针对天朝的开发者,有一下解决方案:

1. 用梯子

2.使用淘宝镜像(淘宝已停用,改用ruby china)

        //首先移除原有的镜像
$ gem sources --remove https://rubygems.org/
        //等有反应之后再敲入以下命令
$ gem sources --add https://gems.ruby-china.org/

淘宝镜像设置完成,验证一下:

$ gem sources -l

如果出现以下,说明镜像设置成功:

*** CURRENT SOURCES ***

        http://ruby.taobao.org/

切换淘宝镜像后,再 sudo gem install cocoapods就可以了

查找第三方类库

项目在导入第三方类库前,最好在pod中搜索一下pod是否收录了此类库
例如搜索AFNetworking

pod search AFNetworking

使用pod导入项目

首先在工程根目录新建一个名为Podfile的文件,格式如下:

platform :ios, '8.0'
use_frameworks!

target 'MyApp' do
  pod 'AFNetworking', '~> 2.6'
  pod 'ORStackView', '~> 3.0'
  pod 'SwiftyJSON', '~> 2.3'
end

然后执行

pod install

注意,** 如果你是使用Swift开发,一定不要忘记Podfile中的 use_frameworks!,否则会出错。**原因是大概是因为Swift的运行时库没有包含在iOS 框架中,这里不做赘述。

使用pod新建Xcode项目

上面介绍了是在项目中加入pod的方法,通常在项目建立时就使用pod,方法如下:

  • 首先使用Xcode新建一个项目
  • 然后Terminal cd至项目根目录
  • 运行 $ pod init
  • 打开 PodFile 然后编辑,注意平台类型,加入需要的类库,保存
  • 运行 $ pod install
    [使用pod后,打开项目时,要从.xcworkspace打开]

pod install和 pod update

注意:pod install 会按照Podfile中的版本好导入类库,如果file中的版本不是最新的,那么可能会出现错误,这时候就要使用 pod update 然后在 pod install了。

CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

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

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 21,387评论 0 39
  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,629评论 3 51
  • 驼队的在六月间的火州(吐鲁番)行进。赶上烈日当头,喉咙早已经干渴难耐,水袋子里却已空空如也。而两边的红色岩石,却似...
    时代印记阅读 191评论 2 5
  • 不知道自己再想什么,谁能理解此刻的心情!现在好多事都让我纠结,躺这里睡不着!只有回想往事忘记这些………………… 回...
    suspend阅读 192评论 2 1