相关参考链接:
手把手教你发布自己的cocoapods开源库
【原】iOS:手把手教你发布代码到CocoaPods(Trunk方式)
Publish Your Pods on CocoaPods with Trunk
下面这一篇文章中说的方法是老版的方法,不过核心流程还是可以参考的
CocoaPods详解之----制作篇
开源cocopods spec
我这里主要是记录当时操作的一些记录,初步的具体操作建议看上面的链接,更详细。
更新开源项目cocopods spec版本:
不管你的spec版本是否已经发布过一版还是第一次发布,在你改了项目里面的代码后你都必须像更新git代码一样先更新tag,只不过命令不同,具体如下:
1、进入到工程有podspec文件的目录
2、git tag 1.2
添加一个tag
3、git add . && git commit -m 'Release 1.0.1'
添加新的release版本
4、git push --tags
在github上添加tag并更新内容
5、git push origin master
更新git、podspec中的version和tag
6、提交到cocopods:
pod trunk push NHBarScrollTool.podspec
相关命令:
# 查看所有的tag
$ git tag
#删除local一个tag
$ git tag -d tagName
# 删除remote tag "1.0.0"
$ git push origin :refs/tags/1.0.0
# 删除一个远程的tag
$ git push origin –delete tag 《tagName》
# 将v0.1.2标签提交到git服务器
$ git push origin v0.1.2
# 将本地所有标签一次性提交到git服务器
$ git push origin –tags
$ git push --tags
# push结束以后千万不能忘记打tag!!!而且tag值一定要和s.version保持一致!!!
$ git tag -m "NHBarScrollTool" 0.1.0
我之前没有执行如下两条set命令也push成功,但这一次一直不成功(提示"The
source_files
pattern did not match any file."错误),于是在网上有人说到要执行如下两条命令,果然成功了,因为当时我的文件路径(本地和网络git上),确定是没有错的。
set the new version to 1.0.0 set the new tag to 1.0.0 (1.0.0要与podspec的version对应)
这两条命令是为pod添加版本号并打上tag。然后执行pod验证命令:
$ pod lib lint
image.png这里要注意一点,有时你写的podspec文件在后面push的时候会提示
[iOS] file patterns: The
source_filespattern did not match any fi
错误,网上很多人都说是路径不对!其实在确认你的路径没问题的情况下还报这个错,
- 那就git 对应的tag下根本没有对应的podspec文件;
- 你进入到git 主页,按下图的方式点击对应的tag
- 进入对应的tag后,你后发现根本没有任何文件,所以肯定不会成功;
podspec工作说明:
当你执行pod push或者验证(pod lib lint)的时候,pod会通过我们写的.podspec文件内的
s.source
与s.source_files
两个地址目录去查找对应pod文件,看如下示例:
s.version = "1.0.0"
s.source = { :git => "https://github.com/nenhall/NHNavigationItem.git", :tag => "#{s.version}" }
s.source_files = "NHNavigationItem/*.{h,m}"
// 以这个文件为例:
pod会去https://github.com/nenhall/NHNavigationItem这个地址的1.0.0 tag下的NHNavigationItem目录下找所有.h.m文件
解决办法:
在验证和上传你的podspec文件到trunk之前,需要将你的源码push到Github上,tag一个版本号并发布一个release版本,这样podspec文件中的s.source的值才能是准确的
重新提交一个新版本:
git add -A && git commit -m "Release 2.0.0"
git tag '2.0.0'
git push --tags
git push origin master
这两条命令是为pod添加版本号并打上tag:
set the new version to 2.0.0
set the new tag to 2.0.0
搜索不到自己的库
如果搜索不到自己的库,可以尝试使用如下命令,新测有效:
pod setup
然后再pod search NHHUDExtend
,
不行就往下执行
pod repo update
然后再pod search NHHUDExtend
如果还不行请使用:
pod search NHHUDExtend --simple
这个估计跟cocoapod的搜索算法有关。
报错: ··· error: include of non-modular header inside framework module ··· [-Werror,-Wnon-modular-include-in-framework-module]
解决办法:在pod lib lint 或者 pod spec lint 以及 pod repo push ....时候加上 --use-libraries
pod lib lint --use-libraries
#或者
pod spec lint --use-libraries
#当然,在提交的时候也要加上
pod repo push <repoName> <podspec> --use-libraries
网友评论