你的位置:首页 > 操作系统

[操作系统]利用pod trunk发布程序,让你的项目可以被pod search


利用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 = trueend
  • 需要提醒的是,现在的podspec必须有tag,所以最好先打个tag,传到github 
    • $:git tag 0.0.1
    • $:git push --tags

&只有确保了以上两点,CocoaPods才能更准确地找到你的repo。

5.检测podspec语法(验证你的podspec文件是否合法用下面指令)

  • $:pod spec lint MJExtension.podspec

6.发布podspec

终于可以到下面的一步了,那就是发布通过trunk上传你的podspec文件。先cd到podspec文件所在目录,然后: 
* $:pod trunk push MJExtension.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