引言:
cocoapods是iOS开发中常用的第三方包管理工具, 也是组件化思想的一个重要组成部分, 其重要性以及便捷性不言而喻, 相信来看这篇简书的您肯定对cocoapods的使用已经驾轻就熟了, 下面我们来介绍一下如何上传自己的代码(组件)到cocoapods.
1.准备要上传到cocoapods的工具(组件)
1.我们在之前的文章中已经封装了简单的工具类, 这里我们就用它来作为组件来上传.
2.处理上传信息
- 在终端中进入到你的工程目录
//cd 空格 将你的工程目录拖入到终端即可,下面是我的路径
cd /Users/zz/Desktop/ZZExtension
2.创建podspec
//如AFNetworking的podspec为:AFNetworking
touch 你的组件名.podspec
//我用的是
touch ZZExtension.podspec
这里是创建好的podspec.png
3.配置podspec内容
Pod::Spec.new do |s|
s.name = "ZZExtension" # 工程名
s.version = "0.0.1" # 版本号
s.summary = "first version" # 描述
s.description = "first version for public" # 详细描述
s.author = { "ZZ" => "1156858877@qq.com" } # 作者信息
s.platform = :ios, "7.0" # 最低支持的iOS版本
s.license = { :type => 'MIT', :file => 'LICENSE' } # 证书信息
s.homepage = "https://github.com/iOS-ZZ/ZZExtension.git" # 主页信息
s.source = { :git => "https://github.com/iOS-ZZ/ZZExtension.git", :tag => "#{s.version}" } # 下载地址
s.requires_arc = true # 是否是自动引用计数ARC
s.frameworks = 'UIKit' # 引入基础库
# 这里是匹配到UIView+ZZExtension的.h和.m
#s.source_files = 'ZZExtensionDemo/ZZExtension/UIView+ZZExtension.{h,m}'
#s.public_header_files = 'ZZExtensionDemo/ZZExtension/UIView+ZZExtension.h'
# 匹配ZZExtensionDemo/ZZExtension下的所有.h.m文件
s.source_files = 'ZZExtensionDemo/ZZExtension/**'
end
4.检验本地podspec是否符合标准
pod lib lint ZZExtension.podspec --no-clean
如果看到这里的绿色, 就表示你成功了, 好吧不要在意这个颜色
本地podspec校验成功
5.把刚才所做的一切, 提交到远程仓库, 我们之前已经做了准备工作, 所以直接提交, 并且打一个tag.(不上传到远端, 别人怎么下载呢, 对不对啊小老弟)
上传变更到主分支这里我们发布一个版本.
点击releases 点击Create a new release 发布信息
6.验证远端podspec以及代码是否可用(之前我们是验证了本地的, 如果不验证本地直接上传的话, 出错之后在本地改好, 来回传比较麻烦, 所以先在本地验证好, 尽量不要做重复的操作浪费时间)
//回到终端 输入以下代码回车
pod spec lint ZZExtension.podspec --no-clean
熟悉的颜色, 熟悉的成功...
远程鉴别通过
7.上传
如果已有账号直接忽略警告, 上传即可(没有警告的也可以用这个, 比较通用)
pod trunk push --allow-warnings
如果没有账号, 先去注册一个在上传
pod trunk register 邮箱 ‘用户名’ –description=’描述’
看到这里就表示你已经成功啦
上传成功后的样子
8.来看看我们的成果吧.
//这里相信大家都会, 直接搜索一下就好了, cocoapods的常用操作
pod search ZZExtension
但是这里往往会搜索不到, 这就很苦恼... 别急, 往下看
搜搜失败
搜索不到是因为缓存的问题, 我们清理一下重新搜索即可
//清理缓存
rm ~/Library/Caches/CocoaPods/search_index.json
//重新搜索(需要耐心等待一下, 因为部分文件需要重新下载, 很快的)
pod search ZZExtension
这里是成功之后的样子
如果你要弃用某个版本
pod trunk delete ZZExtension 0.0.1
//点击回车, 并在在终端提示WARNING: It is generally considered bad behavior to remove versions of a Pod that others are depending on!Please consider using the `deprecate` command instead.时输入yes或者y并回车
如果你想弃用这个工具
pod trunk deprecate ZZExtension
这里是GitHub源码最终的效果, 使用分支保存, 请确保看到的是SimpleComponents分支
网友评论