发布个人开源框架到CocoaPods
来源:互联网 发布:js在图片做标记 编辑:程序博客网 时间:2024/04/27 09:07
写在开头
近期公司项目不是特别的忙,因此最近潜下心来研究了一下如何在cocopods上传项目
本人在学习的过程中,发现并没有一篇完整详细的介绍文章,因此总结几位同行的文章,并实际操作,学到了一点皮毛,现将自己过程中所学到的知识,以及遇到的坑分享给大家
下面,我就一步一步的操作将自己的pods发布到CocoaPods中。
如果你现在对CocoaPods还不太了解,推荐你看一看这篇文章:用CocoaPods做iOS程序的依赖管理 ,2017年cocoaPods 1.2.1升级这里不再过多赘述.
本文以个人发布的一个简单的项目为例来说明: LCActionAlertView
完整的项目目录
1.创建远程仓库(github)
CocoaPods是托管在github上的,所有的Pods也都是托管在github上,因此我们首先需要创建一个属于自己的 github 仓库,如下图所示:
**说明**1.开源库的名字,必填项.2.对该库的说明,可选项.3.仓库的公开性,开源的话选**Public**。 如果是公司内部使用的话这里推荐大家使用私有的仓库,但是**github**的私有仓库是要收费的**$7/month**(壕请无视 - -!)。大部分公司都是有自己的git服务器,不过一般只能在公司内网使用,或者可以选择[Gitlab](https://gitlab.com/),[Coding](https://coding.net/),[Bitbucket](https://bitbucket.org/)任意一种.4.readme文件,建议勾选进行创建,这是对该库完整的一个说明文档5.添加忽略文件使用,根据情况进行选择6.正规的仓库都有一个**license**文件,**Pods**依赖库对这个文件要求比较严格,需要有这个文件。这里最好让**github**自动创建一个,不过后续手动创建也行。建议使用**MIT**类型的**license**
2. clone项目到本地
这里推荐大家使用一个免费的git客户端 - SourceTree,推荐文章:SourceTree 的使用
3.向本地仓库中添加创建 Pods 依赖库所需的文件
1.共享代码
将LCActionAlertView文件夹,即需要共享出去的源代码所在文件夹拖入工程内,建议同时拖入该源代码的使用示例工程
2.创建podspec文件
每个Pods依赖库必须有且仅有一个名称和依赖库名保持一致,后缀名为.podspec的描述文件。这里我们依赖库的描述文件名称应该为LCActionAlertView.podspec
创建这个文件有两种途径:
1.复制已有的podspec文件然后修改对应的参数。
2.执行命令行创建。 在终端输入:
pod spec create LCActionAlertView
文件内容如下所示:
里面有很多部分,根据需要选择即可,另外使用文本编辑打开此文件的时候,有时候英文标点会自动变为中文标点,因此建议拖入xcode,使用xcode打开,避免不必要的麻烦
@version = "0.0.1"Pod::Spec.new do |s| s.name = "LCActionAlertView" s.version = @version s.summary = "简单易用的底部弹出控件." s.description = <<-DESC 首次pods上传 *希望可以成功 DESC s.homepage = "https://github.com/loversunny/LCActionAlertView" s.license = "MIT" s.author = { "冀柳冲" => "HH330897537@163.com" } s.platform = :ios, "8.0" s.source = { :git => "https://github.com/loversunny/LCActionAlertView.git",:tag => "v#{s.version}" } s.source_files = "LCActionAlertView/*.{h,m}" s.framework = "UIKit" s.requires_arc = trueend
3. readme文件,不多赘述
4.开源许可证 LICENSE
CocoaPods强制要求所有的Pods依赖库都必须有license文件,否则验证不会通过。license文件有很多中,详情可以参考tldrlegal。前面我们已经选择创建了一个MIT类型的license。
以上操作完成后,目录是这样的(command + shift + . 显示隐藏目录)
3.提交修改到github
提交之前,需要对刚才添加的podspec文件进行验证
pod lib lint
运行之后可能会得到下面的警告:
-> LCActionAlertView (0.0.1) - WARN | source: Git sources should specify a tag.[!] LCActionAlertView did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it) and All results apply only to public specs, but you can use `--private` to ignore them if linting the specification for a private pod..You can use the `--no-clean` option to inspect any issue.
由于我们现在还没有正式生成 release 版本, github 上并没有任何 tag,所以我们刚才填写 .podspec 文件填写 git 地址的时候没有填写指定 tag (上面文件的注释中有提到),解决方法我们可以先执行忽略警告的命令:
pod lib lint --allow-warnings
如果成功会出现如下输出:
-> O2View (0.0.1) - WARN | source: Git sources should specify a tag.O2View passed validation.
当调试完成了之后,我们需要在 github 上把我们的代码生成相应稳定的 release 版本,根据版本号,(或者直接git命令指定tag值)再修改podspec文件,指定tag值即可.
使用sourceTree 推送到github上.或者使用以下命令:
git add -A && git commit -m "add pod files"git push origin master
5. 将生成的podspec文件提交到官方的 CocoaPods Specs 中
经过前面的步骤,我们的 CocoaPods 依赖库就已经准备好了,但是现在你还不能在你的工程中使用它。如果你想成为一个真正可用的依赖库,还需要最后一步操作:将刚才生产的 podspec 文件提交到 官方的 CocoaPods Specs 中.
没错,我们平时用的能用pod search
搜到的依赖库都会把它上传到这个仓库中, 也就是说只有将我们的 podspec 文件上传到这里,才能成为一个真正的依赖库,别人才能用! 流程如下:
1.CocoaPods Trunk发布自己的Pods
在cocoapods使用trunk,CocoaPods 需要0.33以上版本,用 pod --version查看版本,如果版本低,需要更新。终端执行 sudo gem install -n /usr/local/bin cocoapods
注册Trunk
pod trunk register jlc160993@163.com 'sunny冲哥' --description='描述信息'
大家将上面的邮箱,名字,更改成自己的,然后执行该命令,一切顺利的话就会受到一份邮件,点击邮件中的链接验证通过后,再执行:
pod trunk me
显示以下信息
jiliuchongdeiMac:~ JLC$ pod trunk me - Name: jlc --description=弹窗控件 - Email: hh330897537@163.com - Since: June 26th, 03:40 - Pods: - LCActionAlertView - Sessions: - June 26th, 03:40 - November 2nd, 21:16. IP: 218.29.120.82
如果你的pod是由多人维护的,你也可以添加其他维护者:
pod trunk add-owner JLC kyle@163.com
上面的工作完成之后,我们就可以开始 trunk push
了。
trunk push
pod trunk push
命令会首先验证你本地的podspec文件(是否有错误),之后会上传spec文件到trunk,最后会将你上传的podspec文件转换为需要的json文件。在工程根目录(包含有.podspec)下执行命令:
pod trunk push
如果在trunk push过程中报错了,仔细查看一下错误信息,解决问题后,重新push
成功之后我们也可以在本地的~/.cocoapods/repos/master/Specs
目录下看到转换之后的json文件
至此我们整个制作自己的开源库的过程就完成了,以后有新版本只需要修改工程根目录下的podspec文件,然后重新执行pod trunk push
命令即可。
成功的话,一般会显示如下信息
- 发布个人开源框架到CocoaPods
- 发布开源框架到CocoaPods
- 如何发布自己的开源框架到CocoaPods
- 如何发布自己的开源框架到CocoaPods
- 发布自己的开源框架到CocoaPods
- 如何发布自己的开源框架到 CocoaPods
- 如何发布自己的开源框架到CocoaPods---持续更新中
- 手把手教你发布自己的开源框架到CocoaPods
- 开源框架: CocoaPods
- 开源框架:CocoaPods
- 开源框架:CocoaPods
- 将framework 发布到cocoapods
- 写一个Pod,发布到Cocoapods上
- 发布代码到CocoaPods(Trunk方式)
- 发布自己的pods到CocoaPods
- 发布自己的项目到Cocoapods开源库
- 发布cocoapods
- 如何写一个Pod,并发布到CocoaPods上,pod发布cocoapods
- 【资源共享】《Camera_for_RockChipSDK参考说明_v4.1》下载
- Spring-data-jpa 初探
- ARKit 最简单的一个Demo
- 解决ScrollView 和 RecyclerView 嵌套问题
- POP默认支持三种动画 但同时也支持自定义动画
- 发布个人开源框架到CocoaPods
- ssm框架的maven项目实战
- iOS开发之调用系统原生分享功能
- MYSQLdecimal类型
- webView初步封装
- iOS App 签名的原理
- android 设置标题栏隐藏
- Cardboard的学习(二)Cardboard的下载与导入
- 欢迎使用CSDN-markdown编辑器