博客> 【iOS】发布开源库到Cocoapods全过程
【iOS】发布开源库到Cocoapods全过程
2019-10-14 04:41 评论:0 阅读:1373 1em0nsOft
ios cocoapods LemonBest LemonKit Lemonsoft 1em0nsOft 开源库发布

1. 废话

LemonBest4iOS-Objc版本基本测试已经完成,今天就和大家一起把我们的LemonBest的0.0.1版本发布到Cocoapods中,相信有很多小伙伴天天在使用Cocoapods,但是对一个开源库是怎么发布到Cocoapods仓库中的还不是特别了解,接下来我们就演示全过程,解开这个神秘但是却一点技术含量都没有的面纱~

2. 检查代码

在发布之前,我们首先要检查一下我们的代码,把编译选项切换成Release模式

setSchema

设置Release

unity-tweak-tool

设置完之后Close,我们编译一下我们的代码,快捷键是Command+B,编译成功,没有Error,但是有一个Warning,我们查看一下在哪里

setSchema

通常,我们为了让别人集成我们的开源库后没有这些可恶的Warning或者防止在一会发布到Cocoapods时候编译器提示我们各种烦人的警告信息,我们先把这个警告给解决掉,修改如下代码:

setSchema

在这里因为我们可以确认不会存在问题,所以我们使用了C语言编译器的宏 #pragma clang来告诉编译器,不提示这个警告,代码格式如下:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "XXXX要跳过警告的类型"
                // xxxx要跳过编译警告的代码
#pragma clang diagnostic pop

setSchema

如上图,已经搞定,警告没有啦,我们继续!

3. 梳理文件结构

podspec文件是描述你项目相关信息的文件,这些都是给Cocoapods看的,所以文件名后缀是固定的,我们可以通过命令pod spec create LemonBest来创建podspec文件,也可以手动创建文件,然后我们自己来写里面的内容,默认通过命令创建的podspec文件里面会有非常多的配置,对于新手来说,可能会让你处于大写的的状态,所以建议你可以选择一个比较精简的模板,来进行修改,比如说使用下面这段代码,粘贴到你的podspec文件中,然后修改成你自己的具体项目配置:

Pod::Spec.new do |s|
  # 项目的名称,注意要和项目名一致,而不是和Github仓库名一致!
  s.name             = "LemonBest"
  # 项目的版本号,要保持和git上的版本号一致哦
  s.version          = "0.0.1"
  # 项目的摘要信息
  s.summary          = "一个全平台的(还有Android和Swift版本哦)的统一UI样式的选择器控件。"
  # 项目的介绍
  s.description      = <<-DESC
                       一个全平台的统一UI样式的选择器控件,他有点类似于微信的选择器控件。
                       他强大的可定制性相信会让你感兴趣,况且还是支持Android和Swift版本的呢?
                       让你的项目Android和iOS始终保持一样的UI用户体验!
                       DESC
  # 项目的主页
  s.homepage         = "https://github.com/1em0nsOft/LemonBest4iOS"
  # 所遵守的协议,比如MIT或Apache等
  s.license          = 'MIT'
  # 作者信息哦
  s.author           = { "1em0nsOft-Liuri" => "liuri@lemonsoft.net" }
  # 项目托管地址,因为我的项目在github上,所以下面这么写
  s.source           = { :git => "https://github.com/1em0nsOft/LemonBest4iOS.git", :tag => s.version.to_s }
  # 最低支持的iOS版本
  s.platform     = :ios, '8.0'
  # 是否使用ARC了
  s.requires_arc = true
  # 源代码目录,以podspec文件为相对根目录进行填写!
  s.source_files = 'LemonBest/LemonBest/*'
  # 需要引入的框架
  s.frameworks = 'Foundation', 'CoreGraphics', 'UIKit'

end

前面带#的行都是注释,你可以复制过去之后把这些行删了~需要注意的是那个协议,我写的是MIT,你要保证你项目中的协议要和你写的是一致的哦,Cocoapods在你发布的时候会检查的,你可以在Github中创建项目的时候直接勾选创建:

setSchema

如果你当时创建项目的时候没有勾选这个,也不要急,你可以现在在Github中新建一个其他项目, 勾选上你要的协议,然后创建后的项目中的协议文件你可以直接复制过来用。或者你更懒的话,你可以直接在Github上找一个别人的项目,直接把协议文件复制过来,然后打开,改成你的名字,别忘了!改成你的名字!

license-content

总之,最后文件结构要是这样滴,保证有LICENSE文件:

license-content

4. 提交代码

万事俱备,只欠提交。我们提交分两个步骤,第一步是先确定一下,我们要发布的代码提交到Github中。

license-content

代码保证提交成功之后,我们把我们的代码打上一个Tag版本号,这个版本号要和我们之前在podspec中的版本号保证一致哦!一定要注意!!!

# 项目的版本号,要保持和git上的版本号一致哦
  s.version          = "0.0.1"

license-content

接下来,我们就该提交我们的代码到Cocoapods啦。如果你已经注册了Cocoapods,那么这步可以忽略,如果还没有,那么请您照做,命令行中执行下面的命令:

pod trunk register liuri@lemonsoft.net 'lemonsoft' --description='iAmLemonsoft'
# 注意替换邮箱、用户名和描述信息,换成你的个人信息

如果执行成功,这个时候,你会在你刚才命令中写的邮箱中收到一封验证邮件,这个时候别忘了点链接激活一下,激活认证之后,使用下面命令来验证一下是否成功,如下图,就是成功啦:

license-content

注册用户之后,我们来继续完成提交的过程,在终端中切换到你的podspec文件所在目录,执行如下命令,开始验证你的配置信息是否正确:

pod spec lint LemonBest.podspec
# 后面LemomBest换成你对应的podspec文件名

license-content

出现以上信息,说明我们成功通过验证啦。如果没有通过,请你联系我的QQ:188443213,告诉我你的问题,我给你解决方案,我会把各种错误信息收集起来,总结一下各种问题的解决方案,方便大家交流学习。

如果没有问题,我们开始push代码,使用如下命令:

pod trunk push

如果你的代码有一些警告(黄色的warning提示),但是不影响你的实际功能,或在你的项目中引入了其他三方库,造成了警告,这时候如果你想忽略警告成功publish,请使用如下命令:

pod trunk push --allow-warnings

开始提交,需要等待一小会:

license-content

稍等一会之后,我们终于publish成功啦,如下图所示:

license-content

接下来我们来搜索一下我们的LemonBest,使用pod search LemonBest进行查询:

license-content

哎?怎么搜不到?哪里错了吗?不要急,pod search命令是对本地Cocoapods仓库的一个检索,因此你没有搜索到,你需要更新一下本地的Cocoapods仓库才能把最新的开源库信息拿到本地,使用如下命令:

pod repo update

这个绝对是个漫长的过程,即使你网速很快,估计也得等个一两分钟,慢慢来,不要急,一定要等到成功为止。如果你更新完了之后还是搜索不到,那是因为你的开源库也是需要审核滴,耐心等一会吧,半个小时、一个小时?这个时间不确定,我最长经历过三四个小时后才成功搜索到,最短也有时候刚发布就可以搜索到,看命吧,多等等,然后再次执行pod repo update。刚刚我试了下,也搜不到LemonBest,我们等一下。

半个小时后。。。

再次执行pod repo update,然后执行pod search LemonBest,成功搜索到了我们的刚发布的库:

license-content

到此为止,我们成功完成了发布一个开源库的完整步骤,怎么样,想不想试试呢?

如果你自己尝试过程中出现了各种问题,请你加我的QQ,188443213,一起交流,谢谢。

欢迎您关注我的公众号,柠檬软件,每天推送各种比较亲民的技术文章,感谢您的支持

unity-tweak-tool

收藏
0
sina weixin mail 回到顶部