【iOS开发笔记】使用CocoaPods管理第三方

今年是我毕业的第一个年头,现在的我还有梦想,只是却很少有时间再做梦,上半年开发的新项目上线了一段时间了,前几个周做了几次更新,最近总算开始有些时间,想着把之前的东西总结一下,至少在以后给自己提供一些帮助,只是时间隔了这么久,很多东西的感觉和领悟也记不得了,想起什么写什么,权当给以后的自己留下一份小工具单了。

现在来写第一部分,俗话说,万事开头难,思来想去确实不知道从哪里开始写,刚好上周末时候蛋蛋来找我问CocoaPods的使用,实在他来的突然,也没给他说明白,就从这里开始入手吧。

1.关于CocoaPods
我们在开发过程中肯定会用到很多第三方库,这些库或者框架还有可能会依赖于其他的库和框架,每次都要手动导入,还要注意版本兼容性,有时还需要配置环境变量,实在是麻烦,还有可能会出错导致编译失败,实在是恶心。
但是没有啥办法,大神们也许都是自己封装库和框架,但是对于我这种小菜,还是需要使用大量的第三方来增加我的开发效率。
好在有了CocoaPods来做项目依赖工具。

2.安装CocoaPods
开始学习使用的时候,网上书上都说了好多东西,更新Ruby环境,换源之类的,我实际使用时倒是很少遇到此类问题,所以简单记录一下使用。

第一步:找到终端这个自带的应用打开。
第二步:执行指令:$ sudo gem install cocoapods
第三步:上一指令运行成功后,执行指令:$ pod setup

这样其实就可以了,等着从CocoaPods的GitHub库下载就可以了。
执行第二步的时候,书上说有的会出现报错,虽然没遇到过,不过万一哪天就见鬼了呢,所以还是记录一下。
换源指令:
$ sudo gem source --remove https://rubygems.org/
$ sudo gem source -a https://ruby.taobao.org/

3.使用CocoaPods搜索库
这个大概两种方法吧,一个是去网站上搜索,另一个就是再终端直接执行命令搜索。

第一种:网站搜索
网址:https://cocoapods.org/

搜索界面

直接复制提示框的内容到项目里的Podfile文件里就可以了。

第二种:终端搜索
执行指令:$ pod search AFNetworking
然后下面就把版本和要写到Podfile的东西显示出来了。

4.使用CocoaPods
使用网上都是通过终端或者自己在项目里新建一个Podfile出来,然后按照格式写,再安装,我习惯让系统创建出来。

第一步:打开终端
第二步:执行指令:$ cd 你的项目的工程目录
这里的工程目录就是*.xcodeproj文件所在的地方,直接在文件夹找到这里,然后把上一级的文件夹直接拖到终端里,路径自己就出来了。
第三步:执行指令:$ pod init
指令执行成功后,会自动生成一个Podfile文本文件,可以直接打开编辑。

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

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

  # Pods for Test
  pod 'AFNetworking', '~> 3.0.4'

end

再do和end之间的地方写你要导入的第三方的名称和版本号就可以了,这里用的Objective-C,所以就使用的静态链接库形势。
第四步:执行指令:$ pod install
就可以了。

5.添加新的依赖库
第一步:执行指令:$ pod setup
习惯性先更新一下
第二步:打开Podfile文件,修改do到end之间的内容,保存。
第三步:执行指令:$ pod install
又可以了。

6.其他的
1.使用CocoaPods之后以后记得打开项目要打开那个白色的*xcworkspace文件。
2.如果项目中导入头文件时候找不到的话,需要设置一下路径
选择工程Target -> Build Settings -> 搜索header,找到"User Header Search Paths" -> 新增一个值"$(PODS_ROOT)",并且选择”recursive”,这样Xcode就会在项目目录中递归搜索文件且会自动找到Pods文件,头文件自动补齐功能马上就好使了。

7.关于pod的install和update的问题
对于初学者来说,使用 pod install 或者 pod update 并不会影响大局,所以有的人就习惯了一直沿用自己的更新方式。下面就简单介绍一下这两种更新方式的区别。

(1)pod install:
这个是第一次在工程里面使用pods的时候使用,并且,也是每次你编辑你的Podfile(添加、移除、更新)的时候使用。

每次运行pod install命令的时候,在下载、安装新的库的同时,也会把你安装的每个库的版本都写在了Podfile.lock文件里面。这个文件记录你每个安装库的版本号,并且锁定了这些版本。

当你使用pod install它只解决了pods里面,但不在Podfile.lock文件里面的那些库之间的依赖。对于在Podfile.lock里面所列出的那些库,会下载在Podfile.lock里面明确的版本,并不会去检查是否该库有新的版本。

(2)pod outdated:
当你运行pod outdated命令,CocoaPods会列出那些所有较Podfile.lock里面有新版本的库(那些当前被安装着的库的版本)。这个意思就是,如果你运行pod update PODNAME,如果这个库有新的版本,并且新版本仍然符合在Podfile里的限制,它就会被更新。

(3)pod update:
当你运行 pod update PODNAME 命令时,CocoaPods会帮你更新到这个库的新版本,而不需要考虑Podfile.lock里面的限制,它会更新到这个库尽可能的新版本,只要符合Podfile里面的版本限制。

如果你运行pod update,后面没有跟库的名字,CocoaPods就会更新每一个Podfile里面的库到尽可能的最新版本。

(4)总结:
你应该使用pod update PODNAME去只更新某个特定的库(检查是否有新版本,并尽可能更新到新的版本)。对应的,你应该使用pod install,这个命令不会更新那些已经安装了的库。

当你在你的Podfile里面添加了一个库的时候,你应该使用pod install,而不是pod update,这样既安装了这个库,也不需要去更新其它的已安装库。

你应该使用pod update去更新某个特定的库,或者所有的库(在Podfile的限制中)。

同时,记得在commit提交代码到远程仓库时,带上Podfile.lock文件。

8.更新Ruby
有时候使用 ''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

很简单,我们更新下Ruby环境就好了。
打开终端,然后:
(1)查看当前Ruby版本。

ruby -v

(2)更新Ruby。

gem sources --remove https://rubygems.org/ 
gem sources -a https://gems.ruby-china.com/ (把Ruby镜像指向taobao,避免被墙,现已更新为最新)
gem sources -l  (用来检查使用替换镜像位置成功)

(3)下载安装CocoaPods。

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

推荐阅读更多精彩内容