今年是我毕业的第一个年头,现在的我还有梦想,只是却很少有时间再做梦,上半年开发的新项目上线了一段时间了,前几个周做了几次更新,最近总算开始有些时间,想着把之前的东西总结一下,至少在以后给自己提供一些帮助,只是时间隔了这么久,很多东西的感觉和领悟也记不得了,想起什么写什么,权当给以后的自己留下一份小工具单了。
现在来写第一部分,俗话说,万事开头难,思来想去确实不知道从哪里开始写,刚好上周末时候蛋蛋来找我问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://ruby.taobao.org/ (把Ruby镜像指向taobao,避免被墙,你懂得)
gem sources -l (用来检查使用替换镜像位置成功)
(3)下载安装CocoaPods。
sudo gem install cocoapods
网友评论