CocoaPods几乎是所有iOS开发者都要使用的开发工具,用来方便的管理第三方库。对于初级玩家而言,平时和pod接触最多的就是pod install,偶尔更新一下pod list,最多用pod search搜索一下第三方库。CocoaPods被广大开发者接受的最大原因也在于此:简单无脑。不过,CocoaPods的功能远远不仅限于此,使用它还可以帮我们管理自己的私有库,以及,最令人兴奋的,在pod里发布自己的库(有没有很兴奋,先去写一个自己的库再说吧)。
原理篇
要解锁上面两个技能,我们需要先了解一下CocoaPods的原理。
屏幕快照 2017-08-01 21.35.42.pngCocoaPods第三方库的收录、搜索、解析、下载,其实都离不开这个podspec文件。每一个库的每一个版本,都有一个自己的podspec文件,当中包含了这个库的所有信息,如name、version、author、source等等。
Pod::Spec.new do |s|
s.name = "LaunchADView"
s.version = "1.0"
s.summary = "Cocoapod first version"
s.homepage = "https://github.com/jihongboo/LaunchADView"
s.license = "MIT"
s.author = { "Zac" => "jihongboo@qq.com" }
s.source = { :git => "https://github.com/jihongboo/LaunchADView.git", :tag => "1.0" }
s.ios.deployment_target = '8.0'
s.platform = :ios, '8.0'
s.source_files = 'LaunchADView/*.swift'
s.framework = 'UIKit'
s.requires_arc = true
end
当我们拿到要找的第三方库的podspec文件,我们就知道要去哪里下载库的文件,它有哪些依赖库,适不适合当前的系统版本等等。
当我们第一次跑pod install或者跑pod update后,pod做的事情,就是从云端(官方)把他收录的所有第三方库的podspec文件下载(更新)下来。现在是不是恍然大悟为什么网络不好的时候跑pod update要等半天,你可以打开~/.cocoapods/repos/master/Specs看一下,里面就是所有第三方库的podspec文件,我看了下,足足有200多M。(一直以为搜索安装都是在云端的。。。)
当我们写好podfile,跑pod install后,pod就去本地podspec库搜索匹配的库,找出库的podspec文件,根据文件的source地址下载库文件并集成到项目中。
知道了CocoaPods的原理,我们就很容易能够理解管理私有库和发布自己库的方法。管理私有库,只需要在官方Spec Repo之外,添加自己的私有Spec Repo(Spec Repo:说白了就是podspec集合)即可。而发布自己的库,只需要将库的podspec文件加入到官方Spec Repo中即可,是不是很简单。下面我们就来实操一下。
网友评论