发布自己的开源库到cocoapods
1. 整体文件目录
说明: 我们总不能把所有文件都传上去吧,该传啥传啥,就是我们这一步要做的。
看下图: (s.source_files = "PRZBtnClick/Category/*/.{h,m}"注意这个时候是:.podspec文件和PRZBtnClick/Category/中的PRZBtnClick在同一层级目录下)
首先我们找到工程目录,在工程目录里面创建一个Code(注意大小写)文件夹,把要上传的代码复制粘贴一份到这里
2. 给项目打一个tag
说明: 首先你要把工程上传到github,上传这部分在这里不会涉及,如果不会请自行百度;接下来我们打一个tag
请看下图:
然后点击上图中的提交按钮,就可以成功提交tag了(按钮图中没有,在下面呢)
3. 接下来就是一系列的终端操作了
cd 进入到你的工程目录;打开终端,输入cd,然后拖动你的工程到终端,回车。
创建你的工程名.podspec文件,终端命令如下touch 你的工程名.podspec
在你的工程文件中打开刚刚创建的文件(如果打不开,下载个Sublime Text,用它打开),打开之后,将下面文本粘贴到里面。注意:第一行不加v
@version = "0.0.1"
Pod::Spec.new do |swi
s.name = "PRZBtnClick"
s.version = @version
s.summary = "简述1"
s.description = "描述2"
s.homepage = "https://github.com/wuaitianya/PRZBtnClick"
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { "wuaitianya" => "wuaitianyapeng@163.com" }
s.ios.deployment_target = '8.0'
s.source = { :git => "https://github.com/wuaitianya/PRZBtnClick.git", :tag => "v#{s.version}" }
s.source_files = "PRZBtnClick/Category/**/*.{h,m}"
s.requires_arc = true
s.framework = "UIKit"
end
注意都是英文符号:单引号和双引号。
s.source_files = 'code' 如果在同一目录下
s.source_files = ‘工程名/Code//.{h,m}’
如果在同一个目录,其中,特别注意s.source_files这个字段的后面部分,层级目录一定是podspec所在的文件位置的工程名开始到你要上传的文件目录为止
“” 表示匹配所有文件
“.{h,m}” 表示匹配所有以.h和.m结尾的文件
“*” 表示匹配所有子目录
上面那一堆属性咱们慢慢说s.name : 工程名 s.summary :简述 s.description : 描述 s.homepage : github项目网页 s.license : 这个是授权,后面我会在命令行的时候忽略他 s.author : 作者 s.ios.deployment_target : 你支持的最低版本 s.source : github下载地址(.git),以及版本tag s.source_files : 这里超级重要,如果你是按照我第一部创建的文件夹,就跟我们那么写就行s.requires_arc :是否是ARC s.framework : 你支持的库
4验证刚刚创建的这个文件能不能用
终端输入(还是在工程目录文件夹下哦):pod spec lint
如果出现警告,使用下面进行忽略pod spec lint --allow-warnings
出现绿色的就代表成功了。这里一定要注意: 1. tag是打到当前的分支的,如果找不到文件的话,先上传一下,再给当前版本打个tag,而且要用sourceTree看看这个tag,如果没有,用sourceTree打个tag,右击最近的节点,选择标签。 2.文件路径一定要写对了,如果找不到文件,请自行解决XXXXX.podspec passed validation.
5注册上传到CocoaPods所用的账号密码
pod trunk register 邮箱 ‘用户名’ –description=’描述’注意: 邮箱必须是你注册github的邮箱,用户名最好是你github的用户名。 这一步会给你邮箱发一条验证邮件,点击里面的链接,如果链接不可以点击,那就复制粘贴到浏览器按回车如果出错,可以使用这句 pod trunk register wuaitianyapeng@163.com [wuaitianya] 按照错误提示信息来完善。
邮箱注册成功之后可以验证一下
输入pod trunk me验证成功之后就可以上传了
6上传到CocoaPods
pod trunk push(请耐心等待)
使用这句忽略警告pod trunk push --verbose --allow-warnings上传成功之后,正常情况来讲,pod search 是找不到的,你可以执行下列命令行,作用就是删除Cocoapods的搜索文件,这样做之后,你进行pod search的时候会重新加载这个文件rm ~/Library/Caches/CocoaPods/search_index.json
删除之后再pod search 你上传的代码
搜索到之后就证明你成功了,可以用了,怎么使用我就不说了,相信看得懂这篇文章的人都会使用Cocoapods的
如果需要添加版本,只需要再打个tag(tag加v哦,例如v1.0.0),在文件里改最上面的版本号(这个不加v的),然后上传就好了(pod trunk push),而且上传的时候,一定要保证cd到工程文件下,并且工程文件下是有.podspec 文件的
错误提示
[!] There was an error pushing a new version to trunk: execution expired
原因:推送过期
解决方案:重新将podspec文件传到trunk上
pod trunk push xxx.podspec
将cocoapods项目更新操作
1首先修改需要更新的文件
2在GitHub上面添加一个新的tag值
3修改本地xxx.podspec 文件中的版本值,然后使用GitHub客户端将本地修改提交到GitHub上去
4验证xxx.podspec 文件 pod spec lint --allow-warnings
5上传cocoapods pod trunk push --verbose --allow-warnings
Cocoapods操作
显示已上传到cocoapods的项目
pod trunk me
删除已上传到cocoapods的项目
pod trunk delete AFNetwroing 1.0
可以直接搜索自己的项目 点人用户名,可以查看cocoapods上面自己的项目
https://cocoapods.org/owners/33370