欢迎光临
我们一直在努力

发布自己的pods到CocoaPods trunk 及问题记录

这两天准备把之前写的一些小玩意添加到pods库中去,参考了一些资料后进行操作,实际中也遇到了一些问题,记录下来,问题及解决方式在后面。

首先更新了用trunk之后,CocoaPods 需要0.33版本以上的,用?pod –version查看,如果版本低,需要更新,之前有介绍更新方法。

下一步注册trunk

pod trunk register itiapp@163.com ls

你注册的时候需要替换邮箱和名字,加上?–verbose?可以看到详细信息。

然后顺利的话你会收到一份邮件,需要点击验证。

pod trunk me //查看自己的注册信息

当然,如果你的pod是由多人维护的,你也可以添加其他维护者

pod trunk add-owner othername?other@163.com

创建podspec

执行命令:

pod spec createLSProgressHUD

会在当前目录下生成LSProgressHUD.podspec?文件,然后我们编辑这个文件。 但是一般我们都是直接自己创建个文件拷贝以下内容,因为自动创建的文件里包含许多我们用不到的东西

podspec文件里面有很多注释。我们看个例子

Pod::Spec.new do |s|

s.name ? ? ? ? = ‘LSProgressHUD’

s.version? ? ? = ‘0.0.1’

s.summary? ? ? = ‘模仿Uber加载动画

s.homepage ? ? = ‘https://github.com/lsmakethebest/LSProgressHud’

s.license? ? ? = ‘MIT’

s.authors? ? ? = {‘ls’ => ‘623501561@qq.com’}

s.platform ? ? = :ios, ‘6.0’

#社交网址,这里我写的微博默认是Twitter,如果你写Twitter的话,你的podspec发布成功后会@

s.social_media_url ? = “http://weibo.com/itiapp”

s.source ? ? ? = {:git => ‘https://github.com/lsmakethebest/LSProgressHud.git’, :tag => s.version}

s.source_files = ‘LSProgressHud/**/*.{h,m}’

#s.resource ? ? = ‘LSProgressHud/LSProgressHud.bundle’

s.requires_arc = true

#s.frameworks = ‘UIKit’, ‘QuartzCore’, ‘Foundation’? ? #所需的framework,多个用逗号隔开

# s.dependency “JSONKit”, “~> 1.4” #依赖关系,该项目所依赖的其他库,如果有多个可以写多个 s.dependency

end

一眼看去就很明白了,不用一一解释了,当然,这里的配置项远远多于这些。

ok这里配置完成之后,需要把你的源码push到github上,tag一个版本号并且发布一个release版本,这样podspec文件中的s.source的值才能是准确的。

创建tag并提交,只有创建tag才能知道pod的版本号

git tag 0.0.1

git push origin 0.0.1

检验配置是否正确

pod spec lint LSProgressHUD.podspec –verbose

以下两种方法都可以校验区别如下

pod lib lint 不需要联网

pod spec lint 会联网检查sepc repo,并且关联tag

 

然后本地验证pod是否好使,随便在一个项目中添加

pod ‘LSProgressHUD’,:podspec=>‘/Users/liusong/Desktop/github/LSProgressHud/LSProgressHUD.podspec’

在pod install

上面的工作完成之后,我们就可以开始?trunk push?了

pod trunk push LSProgressHUD.podspec –verbose

命令会首先验证你本地的podspec文件(是否有错误),之后会上传spec文件到trunk,最后会将你上传的podspec文件转换为需要的json文件

第一步验证podspec文件也可以自己去做

成功部署之后,CocoaPods会在Twitter上@你

我们可以看看我们提交的名字为:LSProgressHUD的pod

pod search LSProgressHUD

我们也可以在本地的?~/.cocoapods?路径下看到,转换之后的json文件

?实际操作中的问题:

1.pod验证本地podspec文件速度很快,使用pod trunk me查看自己的信息也能很快响应,但是当使用

pod trunk push命令时,需要非常的有耐心,因为这步的操作实在是耗时太久。

2.push成功之后,我尝试使用pod search命令查找自己的控件,发现无法搜索到,后来发现提交之后,需要使用pod setup命令进行库更新,实际更新时又是卡了很久,最后还是通过翻墙VPN操作成功的。期间还遇到了CocoaPods was not able to update the`master`这样的错误,最后通过删除之前的缓存?rm -fr~/.cocoapods/repos/master

再使用pod setup操作成功。

如若遇到下面错误则代表已提交过了,耐心等待审核通过即可

[!] Unable to accept duplicate entry for: LSLaunchAD (0.0.3)

最后总结下操作步骤:

1.你的开源库发布之后,需要打上版本号tag,否则后续不能完成

2.注册pod trunk

pod trunk register itiapp@163.com ls

2.cd到项目目录下,创建podspec文件

pod spec LSProgressHUD

3.修改podspec文件中的相关信息,这很重要,校验,不能有任何警告或错误

4.发布到pod trunk

pod trunk push LSProgressHUD.podspec – -verbose

5.更新pod库

pod setup

之后就可以搜索到并使用了。

6.如果以后更新pod 仓库,修改代码,创建tag提交,在执行4

 

未经允许不得转载:松哥博客 » 发布自己的pods到CocoaPods trunk 及问题记录
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址