前言

iOS开发中,我们会经常用到cocoapods来添加依赖库,有时候可能也会自己封装一些好用的库,可以发布到cocoapods分享给各位码友使用。本文将详细讲解如何发布自己的开源库到cocoapods及可能遇到的错误解决方案。

发布开源库到cocoapods

1. 注册cocoapods

如果没有账号的话,需要先注册cocoapods,非常简单。

打开终端输入如下命令:

pod trunk register 邮箱 '名字(起个名字)'  --verbose

然后邮箱中会受到一封确认邮件,点击邮件中的链接即完成注册。

接下来在终端中可以查看自己的注册信息,命令如下:

pod trunk me

可以看到如下的注册信息:

  - Name:     name                      // 注册时的名字- Email:    email                     // 注册时的邮箱地址- Since:    January 3rd, 2018 04:26   // 注册时间- Pods:                               // 发布成功的开源库- Sessions:                           // session信息包含有效期和IP - June 17th, 21:50 - October 24th, 08:11. IP: 123.66.66.66

2. 上传封装好的库到GitHub

将封装好的开源库上传到GitHub,并打上tag标签

git tag '1.0'
git push --tags

3. 创建 .podspec文件

在本地仓库中创建.podspec文件,终端cd到要发布的库的本地仓库输入如下命令:

pod spec create RHKit

这里的RHKit是你要发布的库的名称,写成自己的即可。
此时在本地仓库会出现一个RHKit.podspec的文件。

4. 修改 .podspec 文件

为了避免出错过多,可以去GitHub上下载比较成熟的三方库的.podspec文件,然后将内容复制粘贴进自己创建的里边然后进行修改。

以下是我的一个库的.podspec文件内容,仅供参考:

Pod::Spec.new do |s|s.name         = 'RHKit'    # 库名称s.version      = '1.2.8'    # 版本号,与push到GitHub的tag号一致s.summary      = 'iOS常用组件'   # 库的描述信息s.homepage     = 'https://github.com/guorenhao/RHKit'  # 库在GitHub上的地址s.license      = 'MIT'   # 固定s.authors      = {'Abner_G' => 'grh_1990@126.com'}  # 作者 => 邮箱s.platform     = :ios, '8.0'    # iOS版本最低限制s.source       = {:git => 'https://github.com/guorenhao/RHKit.git', :tag => s.version}     # 前部分是库在GitHub上的地址  后边意思是tag与库version一致s.source_files = 'RHKit/**/*.{h,m}'  # 路径s.frameworks   = 'UIKit', 'Foundation' # 依赖框架s.requires_arc = true   # arcend

5. 验证 .podspec 文件

在终端输入如下命令进行验证。

pod spec lint RHKit.podspec

出现如下表示验证通过

这里可能会遇到一些警告或者错误,错误按照相应的提示进行修改即可。警告可以在发布的时候进行忽略。

6. 发布到cocoapods

在终端输入如下命令发布到cocoapods

pod trunk push RHKit.podspec

如果在验证的时候有警告,不需要修改的话,在发布时候需要添加忽略警告,写法如下:

pod trunk push RHKit.podspec --allow-warnings

显示如下表示上传发布成功

7. 更新库版本

  1. 对相应的库进行修改之后提交到GitHub
  2. 增加新的tag值;
  3. 修改 .podspec 文件中版本号;
  4. 验证
  5. 发布

Cocoapods部分常见问题错误

1、问题:发布或更新后搜索不到。
解决:在终端输入如下命令。

pod setup

更新之后再进行搜索。

如果还搜索不到,在搜索时添加 --simple,如下:

pod search RHKit --simple

还可以删除~/Library/Caches/CocoaPods目录下的search_index.json文件
终端输入如下命令:

rm ~/Library/Caches/CocoaPods/search_index.json

再执行pod search 会生成新的~/Library/Caches/CocoaPods/search_index.json文件。

一般情况下上边的解决方案就可以解决了,如果还解决不了,随便找个工程,将刚发布的库添加进去指定版本号,然后执行pod install,执行完之后再pod search就出来了。

2、报错:
[!] Couldn't determine repo type for URL: https://cdn.cocoapods.org/: execution expired
解决:终端执行如下命令

pod repo remove master

完成之后继续之前操作即可。

3、报错:
[!] Authentication token is invalid or unverified. Either verify it with the email that was sent or register a new session.
解决:终端输入如下命令

pod trunk register '邮箱' '名字'

会得到如下回复:

[!] Please verify the session by clicking the link in the verification email that has been sent to 邮箱

去邮箱打开链接验证即可继续执行之前操作。

4、报错:
[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
解决:设置 —> 网络偏好设置 —> 高级 —> DNS —> 添加8.8.8.8
添加该代理后,图片加载或者某些网址加载可能会比较慢,所以在使用之后可以移除。

5、报错:
[!] Unable to add a source with url https://cdn.cocoapods.org/ named trunk. You can try adding it manually in /Users/hao/.cocoapods/repos or via pod repo add.

解决:在cocoapods的本地仓库repos中复制粘贴一份master更名为trunk再进行之前操作。

6、报错:
Updating spec repo trunk [!] CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/deprecated_podspecs.txt Response: Timeout was reached
解决:将cocoapods的本地仓库repos中除了trunk之外的所有文件夹及文件删除或移除再进行之前操作。

7、发布报错:
[!] The spec did not pass validation, due to 1 warning (but you can use --allow-warnings to ignore it).
解决:将--allow-warnings加上即可,如下:

pod trunk push RHKit.podspec --allow-warnings

8、报错:
[!] CDN: trunk Repo update failed或者
[!] CDN: trunk URL couldn't be downloaded:
解决:在podfile文件中指定source源,如下:

source 'https://github.com/CocoaPods/Specs.git'

总结

以上就是关于如何发布自己的开源库到Cocoapods及部分常见错误。

如果有什么问题,我们可以一起交流讨论解决。

最后,希望可以帮助到有需要的码友。

发布自己的开源库到Cocoapods及部分常见错误相关推荐

  1. 如何让自己的开源库支持cocoapods?

    现在很多的第三方库都支持cocoapods.当我们将自己的开源库放在github上后,为了增加使用量,首先要做的就是让自己的开源库支持cocoapods. 现在我们假设已经将自己的代码上传到了gith ...

  2. NLP模型也有“老师”了!装上这个开源库,1毫秒纠正语法错误

    杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 当NLP模型产生了语法错误,怎么办? 比如,He wants that you send him an email. 没关系,现在可以像小时 ...

  3. 教你一步步发布一个开源库到 JCenter

    本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 今天想来分享下,如何一步步自己发布一个开源库到 JCenter 这方面的博客网上已经特别多了,所以本篇并不打算仅仅只是记录流程步骤而 ...

  4. (转)CocoaPods:管理Objective-c 程序中各种第三方开源库关联

    在我们的iOS程序中,经常会用到多个第三方的开源库,通常做法是去下载最新版本的开源库,然后拖拽到工程中. 但是,第三方开源库的数量一旦比较多,版本的管理就非常的麻烦.有没有什么办法可以简化对第三方库的 ...

  5. 【踩坑速记】开源日历控件,顺便全面解析开源库打包发布到Bintray/Jcenter全过程(新),让开源更简单~...

    一.写在前面 自使用android studio开始,就被它独特的依赖方式:compile 'com.android.support:appcompat-v7:25.0.1'所深深吸引,自从有了它,麻 ...

  6. 一步一步教你在JCenter发布开源库

    本文由玉刚说写作平台提供写作赞助,版权归玉刚说微信公众号所有 原作者:Mr.s(猪_队友) 版权声明:未经玉刚说许可,不得以任何形式转载 想必大家都用过这样的或者那样的依赖吧. compile 'co ...

  7. 再见JCenter,将你的开源库发布到MavenCentral上吧

    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每个工作日都有文章更新. 关于JCenter废弃这件事情,相信许多朋友早就已经知道了.我在几个月前也专门写过一篇文章分 ...

  8. 手把手教你发布自己的CocoaPods开源库

    本文讲的是手把手教你发布自己的CocoaPods开源库,发布自己的cocoapods开源库按照以下步骤,良心制作,包教包会!! 下面我会通过一个名为IFMMenu的项目来讲解一下整个过程. 1.写好代 ...

  9. 发布开源框架到CocoaPods入坑指南

    个人原文博客地址: 发布开源框架到CocoaPods入坑指南 在开发过程中一定会用到一些第三方框架, 只要安装了CocoaPods, 然后通过pod install命令, 就可以集成框架到项目中了 可 ...

最新文章

  1. 如何编写代码使jsp程序错误在输入框上面显示_252尚学堂百战程序员049天
  2. Java基础-内部类
  3. OneManager+CloudFlare Workers部署教程
  4. android studio卡顿解决办法
  5. Excel 如何让复制的内容保持原文本格式
  6. 1227: [SDOI2009]虔诚的墓主人
  7. linux下docker部署redis
  8. 如何扩大网站访问,五种方法让问题不再难
  9. 埃夫特机器人离线编程软件_工业机器人离线编程与虚拟仿真软件
  10. 数仓建模—表设计规范
  11. 主成分分析(PCA)
  12. Xshell下载安装(解决评估过期问题)
  13. 格力空调设置定时关机
  14. Sa-Token中接口的限流
  15. react-next 引入阿里云iconfont 图标(适用所有)
  16. ansible的安装、使用
  17. openLayers + Vue实现测量(长度、面积)
  18. 上海亚商投顾:沪指震荡上行 大消费板块全线走强
  19. Mac显示程序坞无延迟方法
  20. 联邦滤波matlab程序,联邦滤波器仿真

热门文章

  1. jq实现一个简易的选项卡
  2. Initialization in《The Java® Virtual Machine Specification Java SE 7 Edition》
  3. 利用jieba分词分析小说二
  4. 利用jieba分词分析小说一
  5. 欧拉法及其他改进方法——Matlab实现
  6. 波特、码元与比特的关系
  7. 【hihocoder1082】然而沼跃鱼早就看穿了一切——字符串
  8. 感觉这么多年喝的鸡汤都白补了,我想静静!
  9. 品管七大手法-5控制图(转载)
  10. 汇编版PE结构解析器