美文网首页iOS技术分享
发布自己的开源库到Cocoapods及部分常见错误

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

作者: it_hao528 | 来源:发表于2022-06-18 23:56 被阅读0次
    image.png

    前言

    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   # arc
    
    end
    

    5. 验证 .podspec 文件

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

    pod spec lint RHKit.podspec
    

    出现如下表示验证通过

    image.png

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

    6. 发布到cocoapods

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

    pod trunk push RHKit.podspec
    

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

    pod trunk push RHKit.podspec --allow-warnings
    

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

    image.png

    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及部分常见错误

        本文链接:https://www.haomeiwen.com/subject/xcplvrtx.html