什么是CocoaPods?
CocoaPods是专门为iOS工程提供对第三方库的依赖的管理工具,通过CocoaPods,我们可以更方便地管理每个第三方库的版本,而且不需要我们做太多的配置。直观、集中和自动化地管理我们项目的第三方库。
我们都有这样的经历,当我们添加第三方库的时候,需要导入一堆相关依赖库,更新的时候也要删掉重新导入然后再配置。当我们需要更新某个第三方库的时候,我们又要手动移除该库,导入新的库,然后再配置。这些是很麻烦且没有意义的工作。
当我们开始使用CocoaPods管理第三方库后,我们只需要相当少的配置,其它的一切都交由CocoaPods来管理即可,我们使用起来就更省心了。
安装CocoaPods
1.首先更新gem到最新版本,在终端中输入:sudo gem update --system。等待一会儿会看到:
2.删除自带的ruby镜像,终端输入:gem sources --remove https://rubygems.org/。
3.添加淘宝的镜像,终端输入:gem sources -a https://gems.ruby-china.com/(原来的淘宝镜像 https://ruby.taobao.org/已经不能用了)。
4.可以用gem sources -l 来检查使用替换镜像位置成功,结果应该只有 https://gems.ruby-china.com/ 才对,如果有多个,重复执行一次步骤2。
5.安装CocoaPods,终端输入:sudo gem install cocoapods。等待一会儿会看到:
此时可能报错:ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/xcodeproj,这个是苹果系统升级以后出现的插件错误,此时只需将安装流程 5.安装CocoaPods 的 sudo gem install cocoapods ——>改为sudo gem install -n /usr/local/bin cocoapods即可。
6.然后配置下CocoaPods,终端输入:pod setup。会出现以下进程:
等待过程可能有点长,成功后会看到:
到这里CocoaPods就安装好了。
查找第三方库,比如查找MJExtension,终端输入:pod search MJExtension,第一次搜索他需要建索引,等待一会儿就可以了。
完成后他会自动进入一个新的页面显示搜索结果,上下滑动查看更多,要退出的话按wq就可以了。以后再搜索就不需要建索引了。
引入第三方库到项目中
我先在桌面上新建一个Test项目,然后演示把MJExtension导进去。刚开始的文件目录是这样的:
1,首先打开终端,cd到Test路径下。
2.然后生成并编辑一个Podfile文件,命令为vim Podfile,要导入的第三方都要在这里面写上。进去后需要先按I键进入编辑状态,写完后按esc,然后按shift+zz(或者先按shift+:,再按wq)就可以保存退出了。
Podfile的格式大概如下,其中'Test'为你的target的名字。
platform :ios,'8.0'
target 'Test' do
pod 'MJExtension', '~> 3.0.13'
end
3.安装,命令为:pod install。
安装成功之后,就可以去项目里面使用了。现在的项目文件变成了这样:
之前我们一直是双击Test.xcodeproj打开项目,以后我们就要双击Test.xcworkspace打开了,打开后发现项目里面多了红色框的部分,可以看到MJExtension已经被引入了。
增加新的第三方
如果使用过程中我还想添加其他的第三方怎么办,只要在Podfile里面接着添加,然后终端再执行pod
install就可以了。
更新CocoaPods中的第三方们。
第三方库们都有人在维护升级,我们需要隔断时间就要更新下我们工程中第三方库的版本。只需要终端输入命令pod
update就可以了。
删除CocoaPods中的某些第三方们。
当我们需要去掉某个第三方库时,只需要在Podfile删除该引入该库的语句,然后执行pod
update或者pod install就可以了。
注:关于使用cocoaPods,import导入时第三方库头文件没有提示问题的解决办法
估计有很多朋友在使用Xcode在项目中导入第三方库时,使用的是cocoaPods,但是在项目中使用此第三方库导入头文件时,输入#import后,并不会联想第三方库头文件(XXXX.h),需要我们手动输入,很麻烦。大家可以按照下面的步骤操作,解决这个小问题:
1.选择target(就是左边你的工程target)—— BuildSettings —— search Paths 下的 User Header Search Paths;
2.双击后面的空白区域;
3.点击“+”号添加一项:并且输入:“$(PODS_ROOT)”(没有引号),选择:recursive(会在相应的目录递归搜索文件);
这样,就可以使得项目中可以添加第三方库头文件时自动联想。
关于cocoaPods搜索不到最新版的第三方库的解决办法
方法一:
1、执行rm ~/Library/Caches/CocoaPods/search_index.json 删除索引的缓存再搜索,如果这样也搜索不到的话更新cocoapods
2、执行 pod repo update 更新成功之后就没问题了
方法二:
pod repo update 更新本地的缓存,如果还不行,那么执行的方法:
清除所有的缓存,重新建立索引。
1、pod cache clean --all
2、rm -rf ~/Library/Caches/CocoaPods
3、pod repo update
方法三:
重新安装一次cocoaPods。