在iOS开发中,经常会使用到一些第三方库,例如AFNetwoking,MJRefresh等,如果我们都去手动导入的话,有时候还要进行配置非常麻烦,所以就是用Cocoapods让他来帮我们配置和管理第三方库。
网上有很多关于Cocoapods的使用教程,而且写得非常详细,但是我写的这篇,主要就是告诉大家使用,和自己学习的一个总结。下面开始来介绍
Cocoapods安装步骤:
1.升级Ruby环境
打开终端输入:$ gem update --system
如果出现:ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/ Gems/2.0.0 directory. 就更新Ruby
强制更新
$ sudo gem update —system
2.更新Ruby源
$ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
$ gem sources -l
CURRENT SOURCES
https://gems.ruby-china.org
请确保只有 gems.ruby-china.org
3.安装Cocoapods
$ sudo gem install cocoapods
这个时候会提示你输入密码,注:在终端输密码不会有提 ,光标也不会移动。
第一次安装时间会比较长
如果报以下错误:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
解决办法:
终端输入:$sudo gem install -n /usr/local/bin cocoapods
pod setup
cocoapods安装路径是在~/.cocoapods文件夹里如果安装失败建议把这个文件里面的东西全部删除,重新安装
如果想查看下载进度的话,先到cocoapods文件夹下
$cd ~/.cocoapods
然后在终端输入:
$du -sh *
即可查看下载的文件大小。也就可以知道是网速不好,还是源不可用了。
安装成功后,你会看到:Setup completed
Cocoapods使用
1.创建podfile文件
使用时,先创建iOS工程,然后cd 到工程目录下,创建podfile文件
以前我们可以使用touch来创建,但是这样创建的没有格式,所以推荐使用pod init 或 pod vim(直接在终端进行编译操作)
终端输入:
$pod init
2.搜索版本号
当我们要使用某一个第三方库的时候,建议先搜索一下,查看版本号,和如何导入
终端输入:$pod search 第三方库名称
输入"q"退出
3.编辑podfile文件
使用Xcode打开编辑,这里不建议使用文本编辑器,因为有时使用文本编辑器打开编辑或出现莫名其妙的错误。
输入要导入的第三方库和版本号(不填写版本号,默认导入最新的版本,建议填写防止以后三方库API替换)
pod 'AFNetworking', '~>3.1.0' 或 pod 'AFNetworking'
"#" 为注释
platform :ios, '9.0' 这里是支持的最低版本,建议与工程支持的最低版本一致
use_frameworks! 这行是确定pod安装完成后第三方是.a还是.framework,如果是.a的话在Swift中是不好引入的,所以建议要有这行代码
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
target 'ZhongJingUser' do
# Uncomment the next line if you're using Swift or would like to use dynamic frameworks
use_frameworks!
# Pods for ZhongJingUser
#要导入的第三方库
pod 'AFNetworking', '~>3.1.0'
end
4.安装pod
输入完成后关闭,终端输入$ pod install
就会自动安装了
注意:完成后再打开项目的时候就要使用 白色的 工程名.xcworkspace来打开了 而不是 蓝色的 工程名.xcodeproj
补充:当我们要安装或更新podfile文件时建议用下面的命令,这样不会去影响以前的第三方库,从而提高执行效率
$ pod install --verbose --no-repo-update
$ pod update --verbose --no-repo-update
pod.lock文件是第一次pod就会自动生成的文件,描述当前导入的框架版本
搭建本地代码仓
pod lib create (你的库名称) XX
01 What platform do you want to use?? [ iOS / macOS ]
是创建一个 iOS 还是 macOS 的工程
02 What language do you want to use?? [ Swift / ObjC ]
使用 ObjC 还是 Swift 开放语言
03 Would you like to include a demo application with your library? [ Yes / No ]
是否导入一个实例程序就是俗称的 demo ,其实就是在这个 demo 上去安装你自己的私有库 然后测试你的私有库 ,一般选择No
04 Which testing frameworks will you use? [ Specta / Kiwi / None ]
是否选择一个测试的框架 ,一般选 None
05 Would you like to do view based testing? [ Yes / No ]
类似于 Xcode 自带的 UI Tests框架 笔者很少用,需要的可以输入 YES
06 What is your class prefix?
类前缀必须设置
.podspec为pod配置文件
注意:“s.source”字段为项目远程路径(可以更换为本地路径)。“s.source_files”字段为项目代码路径,项目代码一般存放在Classes文件夹下。
Example为示例程序,示例程序的Podfile文件路径默认为相对路径,也可更改为绝对路径。
2018年3月22日--记一次pod search失效解决办法
今天安装完pod之后,进行pod search的测试,结果一直报
Unable to find a pod with name, author, summary, or description matching 'AFNetwoking'
查找发现一般,我们在安装CocoaPods时会默认执行一下pod setup,但是这个会有可能出现安装失败,这就导致了pod search的失效。
解决办法
1.我们自己在手动执行一下 pod setup 命令
2.删除~/Library/Caches/CocoaPods目录下的search_index.json文件。
终端执行 rm ~/Library/Caches/CocoaPods目录下的search_index.json
然后再去执行pod search命令,这样会触发CocoaPods去寻找这个索引文件
2019年4月15日--记一次项目使用RAC
OC语言的项目使用
pod 'ReactiveObjC'
swift语言的项目使用
pod 'ReactiveCocoa'