介绍
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。
CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。
pod的卸载
http://www.cnblogs.com/hankkk/p/5703050.html
下载安装
mac下自带Ruby环境,所以直接在终端敲如下命令
sudo gem install cocoapods
由于在国内被墙住,无法访问到cocoapods.org,所以替换淘宝的Ruby镜像来访问cocoapods,按照下面顺序依次敲入命令:
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a https://ruby.taobao.org/
为了验证你的Ruby镜像是taobao,可用如下命令查看:
gem sources -l
只用在终端出现下面的文字才表明之前的命令执行成功
*** CURRENT SOURCES ***https://ruby.taobao.org/
完成以上步骤后,重新执行
sudo geminstallcocoapods
等待一段时间后,cocoapods就可以在你本地下载并且安装好,不需要其他设置
[!] Unable to find a pod with name, author, summary, or descriptionmatching `AFNetworking`
解决方案:http://www.cnblogs.com/i-am-lvjiazhen/p/6148703.html
使用cocoapods
搜索功能
为了确定FMDB是否支持cocoapods,可以使用pod search 命令验证,如下
pod search fmdb
搜索结果如下:
这说明fmdb支持cocoapods,我们可以将其导入项目
导入第三方库
本例以导入FMDB为示范
(1)在终端进入项目所在目录下,即xxx.xcodeproj所在目录,执行命令新建Podfile文并输入如下文字
vim Podfile//第一步,新建文件
//文件中输入的类容
platform :ios,'7.0'xcodeproj 'JFDiscover.xcodeproj'
target 'JFDiscover' do
use_frameworks!
pod "AFNetworking"
pod "Masonry"
pod 'MJRefresh'
pod 'MBProgressHUD'
end
退出保存
:wq
这时候你会发现项目目录下存在一个Podfile的文件,文件内容为刚才所输入的内容,此时可以用cocoapods下载FMDB类库了,在终端的当前目录下(Podfile所在目录),执行命令
pod install
运行上述命令后,终端出现如下信息:
此时进入项目所在目录下,会发现xxx.xcworkspace文件
以后打开项目就用.xcworkspace文件,而不是之前的.xcodeproj文件
tips
以后需要在该项目中继续导入第三方库的时候,只需要修改Podfile文件,添加你需要的第三方库(前提是该类库支持cocoapods),保存后执行pod install (或者 pod update)即可。
经常遇到的问题
问题1:
[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master-1`. You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`. 是由于我装了多个Xcode导致路径变了。
解决:JeremydeMacBook-Pro-2:自己的项目 jeremy$ sudo xcode-select -switch /Applications/Xcode.app (直接把Xcode的路径给拖进来)
问题2:
Error fetching http://ruby.taobao.org/:
bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
说明:
链接不到Ruby淘宝源,常见的404错误,可能因为https替换http了。所以gem sources -a http://ruby.taobao.org/ 需要替换成:gem sources -a https://ruby.taobao.org/
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/update_rubygems
问题3:
说明:
Mac OSX 10.11不能使用sudo gem update —system了,需要替换成:sudo gem update-n /usr/local/bin —system
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
问题4:
说明:
Podfile升级之后到1.0.0版本,Pod里的内容必须明确指出所用第三方库的target,所以在podfile文件需要明确:
target “YOUR_TARGRT_NAME” do
...
end
问题5:
用cocoaPod sinstall完成所需要的第三方类库之后,在要用的地方导入(#import)发现不提示的问题?
解决:
1.选择target(就是左边你的工程target)—— BuildSettings —— search Paths 下的 User Header Search Paths(如图所示:)
2.双击后面的空白区域:(如图所示:)
3.出现下面的图,并且点击“+”号添加一项:并且输入:“$(PODS_ROOT)”(没有引号),选择:recursive(会在相应的目录递归搜索文件):
这样设置完成之后,再在工程中导入cocoaPods安装的第三方类库就有提示了。