pod install原理
cocoapod安装之后本地会有~/.cocoapods/repos/的路径,
repos里是所有podspec文件, 可以理解为依赖的索引库.
podspec文件里的.source配置有依赖库的实际git地址.
所以install时pod先去repos查找依赖库的podspec文件,没有则下载,然后通过podspec里的.source下载依赖库.
第一步创建自己的库
方式有两种,一种是通过
pod lib create xxx
创建模板项目,将业务代码放在 Classes 文件夹中,然后修改'.spec'文件,就可以发布了.
另一种是在项目里自己建.spec
文件配置然后发布.
spec文件配置如下
Pod::Spec.new do |s|
// 设置名称
s.name = "tcggMain"
// 设置版本号
s.version = "0.0.1"
// 设置摘要
s.summary = "A short description of tcggMain."
// 设置详情
s.description = "Good"
// 设置仓库主页
s.homepage = "http://xxxx/xxxx"
// 设置许可证
s.license = "MIT"
// 设置作者
s.author = { "iThinkerYZ" => "xxxx@qq.com" }
// 设置仓库源,表示在哪可以找到组件工程
s.source = { :git => "xxxxx", :tag => "#{s.version}" }
// 设置 源文件路径 => 不是整个工程的文件,而是自己封装的代码,以后别的工程引入,就会引入这里的代码。
s.source_files = "tcggMain/Classes/**/*.{h,m}"
// s.dependency = '' 组件工程依赖哪些第三方框架
// s.frameworks = 'UIKit', 'MapKit' 组件工程依赖哪些原生框架
// s.resource_bundles = {} 组件工程图片资源
end
注意点:push 远程仓库的时候 一定要打tag 并且tag的版本号要跟Spec文件中 s.version 的版本号一致 因为cocoapods是根据代码仓库的tag,去下载对应tag的远程代码库的
spec
文件写完之后需要使用pod spec lint [spec] --allow-warnings
命令验证是否可用
配置好的spec
文件需要由某个repos索引库保管.因为我们是私有库,所以要建立自己的pod索引库
通过pod repo add [私有repos索引库名称] [私有repos索引库git地址]
如pod repo add privateRepo https://privateRepo.git
就能构建私有repos了.
pod repo push [私有repos索引库名称] [spec文件名称]
命令将spec文件托管给某个私有repos索引库.
最后在Podfile
里
source '[私有repos索引库git地址]'
source '[依赖库git地址]'
pod [依赖库名称]