1. 在 github 上创建新的项目
新创建仓库 如图所示 : new_repository.png注意 :
LICENSE 是必须的
readme.md 可选
2. clone 到本地, 放入自己的库和 demo
clone.png3. podspec 文件
- 3.1 创建
pod spec create DGItemView.podspec
3.2 编辑
命令vim DGItemView.podspec
Pod::Spec.new do |s|
s.name = 'DGItemView'
s.version = '1.0.0'
s.license = { :type => "MIT", :file => "LICENSE" }
s.homepage = 'https://github.com/David5-G/DGItemView'
s.authors = { 'david' => '2632771473@qq.com' }
s.summary = 'a view for segment control'
s.source = { :git => "https://github.com/David5-G/DGItemView.git", :tag => s.version }
s.source_files = "DGItemView/*.{h,m}"
s.requires_arc = true
s.frameworks = 'UIKit'
s.ios.deployment_target = '8.0'
end
s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version:版本号
s.ios.deployment_target:支持的pod最低版本
s.summary: 简介
s.homepage:项目主页地址
s.license:许可证
s.author:作者
s.social_media_url:社交网址,这里我写的微博默认是Twitter,如果你写Twitter的话,你的podspec发布成功后会@你
s.source:项目的地址
s.source_files:需要包含的源文件(基于source)
s.resources: 资源文件
s.requires_arc: 是否支持ARC
s.dependency:依赖库,不能依赖未发布的库
s.dependency:依赖库,如有多个可以这样写
- 这里的 description 书写 需要一点格式, 具体是下面这样:
s.description = <<-DESC
easy to use WeChat SDK tools.
DESC
- 这里的 source_file 书写, 需要依据你的目录结构 :
默认是 s.source_files = "Classes/**/*.{h,m}"
首先
** 是匹配所有目录,
* 匹配文件,
.{h,m} 匹配后缀是 .h 或 .m 的文件
Classes 须和 podspec 同级的存放, 这里我存放库文件的目录是DGItemView, 且里面已经是.h & .m的文件, 即我的 s.source_files = "DGItemView/*.{h,m}", 若你的目录下还有很多子目录比如 util, tool, 可以写成
s.source_files = "Classes/util/*.{h,m}"
s.source_files = "Classes/tool/*.{h,m}"
//或者是
s.source_files = "Classes/**/*.{h,m}"
- s.source 常见写法
//commit => "68defea" 表示将这个Pod版本与Git仓库中某个commit绑定
s.source = { :git => "https://github.com/xxx.git", :commit => "68defea" }
//tag => 1.0.0 表示将这个Pod版本与Git仓库中某个版本的comit绑定
s.source = { :git => "https://github.com/xxx.git", :tag => 1.0.0 }
//tag => s.version 表示将这个Pod版本与Git仓库中相同版本的comit绑定
s.source = { :git => "https://github.com/xxx.git", :tag => s.version }
- 3.3 验证
pod spec lint DGItemView.podspec
通过验证: podspec_pass_validation.png注 : 可加参数
--verbose 打印错误信息
--allow-warnings 允许警告
--use-libraries 允许使用静态库
4.上传到Git
将包含配置好的 .podspec, LICENSE,和第2步中的文件项目提交 Git
5.打tag
注意 :
cocoapods是依赖tag版本的,所以必须打tag,
更新库时
1.只需要再一个tag
2.然后修改.podspec文件中的版本接着提交到cocoapods
//为git打tag, 第一次需要在前面加一个v
git tag 1.0.0
//将tag推送到远程仓库
git push --tags
6.发布到 cocoapods
pod trunk push DGItemView.podspec
发布成功
podspec_push_success.png
7.注册cocoapods
trunk需要CocoaPods 0.33版本以上,用pod --version命令查看版本,
//如果版本低,需要升级
sudo gen install cocoapods
pod setup
//检查注册
pod trunk me
//注册
// 加上--verbose可以输出详细debug信息,方便出错时查看。
pod trunk register xxx@qq.com "name" --verbose
注册完成之后会给你的邮箱发个邮件,进入邮箱邮件里面有个链接,需要点击确认一下
8.搜索一下
pod search DGItemView
注意 : cocoapods 需要一些处理时间, 可以去 cocoapods 官网去查看自己的库
- 若提示
Unable to find a pod with name, author, summary, or descriptionmatching 'DGItemView'
- 删除~/Library/Caches/CocoaPods目录下的search_index.json文件
- 终端输入
rm ~/Library/Caches/CocoaPods/search_index.json
- 删除成功后再执行
pod search DGItemView
就可以了
网友评论