Pod私有库是什么:
一个私有库包括:索引的私有仓库和源码的私有仓库。
索引的私有仓库:索引仓库存放的是地址,地址指向的是源码仓库。
源码的私有仓库:存放的是源码
搭建步骤
1.创建远程索引私有库
这里就说明创建的过程了,百度很多资料也非常简单
这里创建好的地址是:
https://gitlab.xiaomingsport.com/xmsport/ios/QHiOSSpecs/xmbaseframeworkrepo.git
2.创建远程私有库
这里创建好的地址是:
https://gitlab.xiaomingsport.com/xmsport/ios/xmbaseframework.git
3.在本地添加一个自己的远程索引库
$ ~/.cocoapods/repos
$ pod repo add XMBaseFrameworkRepo https://gitlab.xiaomingsport.com/xmsport/ios/QHiOSSpecs/xmbaseframeworkrepo.git
4.模板创建
pod lib create XMBaseFramework
将自己写好的东西放到模板提供的目录下面。下图所示(网图)
下图是放好的项目基础库 示意图
5.将制作好的组件上传至仓库
$ cd /Users/Lizhijun/Desktop/XMBaseFramework
$ git remote add origin https://gitlab.xiaomingsport.com/xmsport/ios/xmbaseframework.git
$ git push -u origin master
$ git add .
$ git commit -m '初始化'
$ git push -u origin master
6.更改模板文件相关信息
下面是我这边设置的,可以参考下
Pod::Spec.new do |s|
s.name = 'XMBaseFramework'
s.version = '1.0.1'
s.summary = 'XMBaseFramework.'
# This description is used to generate tags and improve search results.
# * Think: What does it do? Why did you write it? What is the focus?
# * Try to keep it short, snappy and to the point.
# * Write the description between the DESC delimiters below.
# * Finally, don't worry about the indent, CocoaPods strips it!
s.description = <<-DESC
TODO: 删除UIView+XMTouchArea .
DESC
s.homepage = 'https://gitlab.xiaomingsport.com/xmsport/ios/xmbaseframework'
# s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { '志军李' => 'lizhijun@jmfen.cn' }
s.source = { :git => 'https://gitlab.xiaomingsport.com/xmsport/ios/xmbaseframework.git', :tag => s.version.to_s }
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
s.ios.deployment_target = '9.0'
s.source_files = 'XMBaseFramework/Classes/**/*'
# s.resource_bundles = {
# 'XMBaseFramework' => ['XMBaseFramework/Assets/*.png']
# }
# s.public_header_files = 'Pod/Classes/**/*.h'
# s.frameworks = 'UIKit', 'MapKit'
# s.dependency 'AFNetworking', '~> 2.3'
7.验证spec文件
在创建好的模板工程 更目录执行下面的命令
pod lib lint --private
或者
pod lib lint --private --verbose //与上面的却别verbose可以查看验证日志
如果出现 error 必须处理掉 否则验证不通过
如果有警告的话可以进行下面这条
pod lib lint --private --allow-warnings --verbose
制作过程中遇到的问题
1.工程编译不通过
2. s.source文件填错导致找不到文件的报错
8.给版本打一个标签(标签对应的就是pod 第三方库的版本号)
查看有哪些tag
git tag
打标签
git tag 1.0.1
将标签推送到远程仓库
git push --tags
9.最后一步,建立关联
pod repo push XMBaseFrameworkRepo XMBaseFramework.podspec
如果有警告需要用下面的命令执行忽略掉警告
pod repo push XMBaseFrameworkRepo XMBaseFramework.podspec --allow-warnings --verbose
整个打印过程没有报错 恭喜说明私有库创建成功了
使用的话 Podfile中添加创建好的私有库名称和版本号
执行
pod init
pod install
注意的地方
使用私有库:
Podfile 文件内:
pod ‘frameWorksName’, :git=>’https://git.xxxxxxxx.git’, :branch=>’branchName’
Branch 可以不要
如果有相同的库名字,私有和公有,不指定git路径则pod的是公有的库,即使头部source 添加了路径。
向外打包framewrok,而不是源码
使用pod插件
sudo gem install cocoapods-packager
pod package 工程名.podspec —force