最近换了台新电脑,重新装了一下开发环境,踩了好多坑,感觉有必要写下来备用
1,什么是cocoapods
cocoapods是一个swift和OC应用依赖管理工具,上面有丰富的三方库并且大多数应用开发者都在使用。它是基于ruby(ruby是一种通用的面向对象的脚本语言)构建的,所以依赖于ruby环境,但是Mac OS中默认内置有ruby环境,并且也推荐使用默认的ruby环境去安装cocoapods。安装的过程需要使用到另外工具叫gem,什么是gem呢?
RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。
2,安装准备
- 由于安装的时候是通过Gem源来查找和下载资源的,所以要保证我们的gem源稳定可达,关于gem源的操作有以下三个命令:
gem -v // 查看当前版本
gem sources -l //查看当前所有的源
gem sources -a https://gems.ruby-china.com // 添加源
gem sources --remove https://rubygems.org/ // 移除源
- 测试发现目前可用的源为https://gems.ruby-china.com 注意是com,不是org,需要事先利用命令移除和添加保证源为(如下图)
3,安装pod
- 利用gem命令开始安装cocoapods, 首先在命令行中输入
sudo gem install cocoapods
- 如果提示权限错误,再次运行下面的命令
sudo gem install -n /usr/local/bin cocoapods
- 过程会让输入账户密码, 也就是开机密码,密码的输入不会显示出来,输入之后回车就是
- 安装过程可能会持续一段时间,但不会很长
4,验证是否安装成功
- 可以通过如下命令查看pod是否安装成功,如果安装成功会返回已经安装的pod版本号
pod --version
- 如果没有正确的返回版本号, 表示没有安装成功,根据错误提示和检查之前的步骤解决问题
5,初始化pod,下载依赖库
pod已经安装完成了,但是想正确使用的话,还需要下载一个重要的东西,就是pod Specs, 我们之所以能够找到我们想用的三方库,就是Specs的功劳,它维护了所有上传到pod中的三方库的位置和版本信息,pod search的正常使用依赖于它,所以我们安装好pod后,使用命令pod setup初始化一下。
pod setup
- 这一步会去GitHub上pod的Specs库下载一份到本地,所以对网络要求比较高。如果运气好的话很快就可以搞定, 如果运气不好的话有可能一两天都下不完。
- 不过如果不想下载的话可以找一个已经下载好的Specs库放到自己对应的目录下也可以。具体这个Specs库可以复制别人的, 或者国内下载别人分享的。
-
如果是想自己下载然后放到对应的目录下,有几个tips,mac下显示与隐藏隐藏文件的命令如下,可以更详细的查看pod的安装目录(如图)
显示隐藏文件:defaults write com.apple.finder AppleShowAllFiles -bool true
恢复隐藏命令:defaults write com.apple.finder AppleShowAllFiles -bool false
电脑重启才能看到效果
快速的到pod的安装目录 Command + Shift + G 打开前往文件,然后输入~/.cocoapods 回车
如果安装完成后没有执行pod setup的情况下,第一次pod search的时候还是一样会去下载版本库, 所以最好是安装好之后直接setup一下。
6,测试初始化是否成功
- 利用pod search 命令测试初始化是否成功,任意一个三方库看能否正确返回。
- 如果提示如下错误
pod search AFNetworking
[!] Unable to find a pod with name, author, summary, or description matching `AFNetworking`
原因是可能是缓存文件的原因,这个时候可以利用命令删除缓存文件
rm ~/Library/Caches/CocoaPods/search_index.json
然后重新search, 这个时候会重新创建搜索索引(如图)
7,开始使用之创建podfile文件
- podfile文件创建方式有两种思路,一种是cd到工程目录下然后利用vim创建,一种是cd到工程目录下利用命令pod init创建。 推荐使用pod init,利用pod init创建出来的pod file文件里面格式已经写好了,修改一下就ok
- 当然也可以修改已经存在的podfile文件,然后放到工程根目录下即可。
- podfile文件准备好后cd到工程根目录下执行命令pod install开始去下载三方库,过程快慢取决于网络。下载完成后之后再打开工程的话就需要打开XXX.xcworkspace文件了
8,使用注意点 pod install 和pod update的区别
- 第一次使用install,之后使用update这种想法是错误的❌
- pod install的使用场景是往项目中增加或者移除三方库的时候使用,使用该命令并不会影响其他的三方库
- pod update用于更新指定或者所有三方库, 它回去比对远程和当前本地版本是否一样,如果不一样更新到最新的版本。
2019-12-18更新
今天更新CocoaPods到了1.8.4的版本, 该版本很大的不同就是不在需要在setup的时候去clone庞大的repo mater。为了加快setup和依赖分析的速度,使用了CDN取代之前的版本仓库https://github.com/CocoaPods/Specs.git,使用的时候按需请求数据,使用方式为首先在podfile文件中指定源
- source 'https://github.com/CocoaPods/Specs.git'
+ source 'https://cdn.cocoapods.org/'
然后移除之前的master repo
pod repo remove master
经测试发现新的CDN方式只会下载分析当前podfile中使用的三方库, 并且缓存在本地。