利用pod trunk发布程序
原先有说过CocoaPods的集成使用方法,对于pods集成以及管理三方框架确实有很多便捷之处,在这里好处就不多说了。好处很多那是不是也想让自己的项目让别人pod的冲动了。多余的话不用多讲,直接上主题了。
1.注册
pod trunk register 邮箱 '用户名' --description='电脑描述'
2.查收邮件
- 其他邮箱直接进入点击链接
- 如果是QQ邮箱,可能会被放到“垃圾箱”中,并不一定是“收件箱”
- 点击邮件中的链接:
https://trunk.cocoapods.org/sessions/verify/xxxx - 点击邮件的链接就完成了trunk注册流程。
3.完成注册后便可以查看个人信息
pod trunk me
- Name: 你刚刚输入的用户名
- Email: xxxxxx@example.com
- Since: March 28th, 03:28
- Pods: None
- Sessions:
- March 28th, 03:28 - June 5th, 03:08. IP: xxx.xxx.xxx.xxx Description: Macbook Pro
- 中间可能遇到这种错误
NoMethodError - undefined method 'last' for #<Netrc::Entry:0x007fc59c246378>
- 这时候需要尝试更新gem源或者pod
sudo gem update --system
sudo gem install cocoapods
sudo gem install cocospods-trunk
4.创建podspec文件
- 为你的项目代码添加podspec描述文件描述你的项目信息
- 将podspec文件通过trunk推送给CocoaPods服务器
- 注意:以下描述的文件都要放在clone到本地的git仓库的根目录下面。
4.1 如何创建podspec文件
创建自己的podspec文件可以有两个途径:
①copy成熟的开源库的podspec文件修改对应的参数这种方式。
②执行以下创建命令:
* pod spec cretae 文件名
* 比如pod spec cretae DJStatusBarHUD就会生成一个DJStatusBarHUD.podspec
&建议直接拿一些成熟的开源库的podspec改就行,生成的模板里有很多冗余的属性。
填写podspec内容
Pod::Spec.new do |s|
s.name = "DJStatusBarHUD"
s.version = "0.0.1"
s.summary = "The easily and conveniently use of statusBar"
s.homepage = "https://github.com/djliu328/DJStatusBarHUD"
s.license = "MIT"
s.author = { "dj_liu" => "xxxxx@example.com" }
s.source = {:git => 'https://github.com/djliu328/DJStatusBarHUD.git', :tag => s.version}
s.source_files = 'DJStatusBarHUD/**/*.{h,m}'
s.resource = 'DJStatusBarHUD/DJStatusBarHUD.bundle'
s.requires_arc = true
end
- 需要提醒的是,现在的podspec必须有tag,所以最好先打个tag,传到github
git tag 0.0.1
git push --tags
&只有确保了以上两点,CocoaPods才能更准确地找到你的repo。
5.检测podspec语法(验证你的podspec文件是否合法用下面指令)
pod spec lint DJStatusBarHUD.podspec
6.发布podspec
终于可以到下面的一步了,那就是发布通过trunk上传你的podspec文件。先cd到podspec文件所在目录,然后:
* pod trunk push DJStatusBarHUD.podspec
* 如果是第一次发布pod,需要去https://trunk.cocoapods.org/claims/new认领pod(感觉也可以不用,当时也没怎么用到,自己选择吧)
7.检测
有些时候你发布完成后pod search发现什么也没有,这并不一定表示你的项目没有上传成功,有可能会有延时。可以进行下面的操作进行尝试:
* pod setup
: 初始化
* pod repo update
: 更新仓库
* pod search DJStatusBarHUD
8.仓库更新
- 如果仓库更新慢,可以考虑更换仓库镜像
pod repo remove master
pod repo add master http://git.oschina.net/akuandev/Specs.git