组件化之路3.上传组件到cocoapods

引言:

cocoapods是iOS开发中常用的第三方包管理工具, 也是组件化思想的一个重要组成部分, 其重要性以及便捷性不言而喻, 相信来看这篇简书的您肯定对cocoapods的使用已经驾轻就熟了, 下面我们来介绍一下如何上传自己的代码(组件)到cocoapods.

1.准备要上传到cocoapods的工具(组件)

1.我们在之前的文章中已经封装了简单的工具类, 这里我们就用它来作为组件来上传.

2.处理上传信息
  1. 在终端中进入到你的工程目录
//cd 空格 将你的工程目录拖入到终端即可,下面是我的路径
cd /Users/zz/Desktop/ZZExtension 

2.创建podspec

//如AFNetworking的podspec为:AFNetworking
touch 你的组件名.podspec

//我用的是
touch ZZExtension.podspec
2897360-243068d918e3ed11.png
这里是创建好的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" => "[email protected]" }       # 作者信息
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

如果看到这里的绿色, 就表示你成功了, 好吧不要在意这个颜色


2897360-dfec35d6b3213385.png
本地podspec校验成功

5.把刚才所做的一切, 提交到远程仓库, 我们之前已经做了准备工作, 所以直接提交, 并且打一个tag.(不上传到远端, 别人怎么下载呢, 对不对啊小老弟)

2897360-0dccb777e46f056a.png
上传变更到主分支

这里我们发布一个版本.


2897360-3e8fead4e6b93184.png
点击releases
2897360-9ce352b3311ae73d.png
点击Create a new release
2897360-1e2ec1664f1545c7.png
发布信息

6.验证远端podspec以及代码是否可用(之前我们是验证了本地的, 如果不验证本地直接上传的话, 出错之后在本地改好, 来回传比较麻烦, 所以先在本地验证好, 尽量不要做重复的操作浪费时间)

//回到终端 输入以下代码回车
pod spec lint ZZExtension.podspec --no-clean

熟悉的颜色, 熟悉的成功...


2897360-494f9385f6bd3b6f.png
远程鉴别通过

7.上传
如果已有账号直接忽略警告, 上传即可(没有警告的也可以用这个, 比较通用)

pod trunk push --allow-warnings

如果没有账号, 先去注册一个在上传

pod trunk register 邮箱 ‘用户名’ –description=’描述’

看到这里就表示你已经成功啦


2897360-156630e5563ccb6d.png
上传成功后的样子

8.来看看我们的成果吧.

//这里相信大家都会, 直接搜索一下就好了, cocoapods的常用操作
pod search ZZExtension

但是这里往往会搜索不到, 这就很苦恼... 别急, 往下看


2897360-d18fa950285033ad.png
搜搜失败

搜索不到是因为缓存的问题, 我们清理一下重新搜索即可

//清理缓存
rm ~/Library/Caches/CocoaPods/search_index.json
//重新搜索(需要耐心等待一下, 因为部分文件需要重新下载, 很快的)
pod search ZZExtension
2897360-b8834da96340b5aa.png
这里是成功之后的样子

如果你要弃用某个版本

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分支

猜你喜欢

转载自blog.csdn.net/weixin_34268169/article/details/86978014
今日推荐