写点什么

ios 技术分享| iOS 发布 framework 到 Cocoapods 以及常见问题

作者:anyRTC开发者
  • 2021 年 12 月 07 日
  • 本文字数:1574 字

    阅读完需:约 5 分钟

前言

CocoaPods 是一个用来管理 Xcode 依赖库的项目,通过 CocoaPods,我们可以直观集中和自动化地管理我们项目的第三方库。


本篇文章讲述如何将 framework 发布到 Cocoapods 以及发布中遇到的常见问题。

注册 CocoaPods 的 Trunk 服务

  1. 执行完以下命令,去邮箱点击 Trunk 验证链接。


$ pod trunk register yourEmail 'your name' --verbose
复制代码


example:


pod trunk register anyrtc@dync.cc 'anyrtc' --verbose


  1. 查询注册信息。


$ pod trunk me
复制代码


Cocoapods 发布

常见的 CocoaPods 发布使用 Github 上的 git 方式,然而 spec.source 支持 git, hg, bzr, svn and HTTP。日常开发推荐使用 git 方式。

git 方式

  spec.source = { :git => "https://github.com/anyrtc/xxx.git",                      :tag => "#{spec.version}",                     :submodules => true }
复制代码


  1. 创建工程



  1. 从 Github 上将刚创建的项目 clone 下来,使用终端进入根目录,创建


pod spec create xxx
复制代码



  1. 修改配置文件



配置文件如何修改?详见 Cocoapods guides


spec 配置,前往 CocoaPods ,可查询所有 Cocopoads 上库的相关信息



  1. 提交到 Github 仓库,目录如下:



git add .git commit -m “commit message”git push -u origin master
复制代码


  1. 生成 tag 并推送,对应 spec.source。


$ git tag '1.0.0'$ git push --tags$ git push origin master
$ pod spec lint --allow-warnings(详细 pod spec lint xxx.podspec --verbose)
pod trunk pushpod trunk push xxx.podspecpod trunk push xxx.podspec --allow-warnings
复制代码

http 方式

  spec.source = { :http => 'https://anyrtc.com/ios/xxx.zip'}
复制代码


创建修改 spec 配置文件,直接 pod trunk push

Cocoapods 发布常见问题

  1. pod trunk push 时出现如下错误:


[!] Source code for your Pod was not accessible to CocoaPods Trunk. Is it a private repo or behind a username/password on http?
复制代码



造成这个错误的可能很多,CocoaPods issues


如果使用 spec.source 使用 http 方式导致上述错误,可能是 http 地址验证失败或添加防盗链导致,地址使用 http 或 https 均可 。


  1. pod trunk push 时出现如下错误:


[!] The spec did not pass validation, due to 1 warning (but you can use `--allow-warnings` to ignore it).
复制代码


解决方法


解决警告或者直接忽略


$ pod trunk push xxx.podspec --allow-warnings
复制代码


  1. pod search xxx 时出现如下错误:


[!] Unable to find a pod with name, author, summary, or description matching `xxx`
复制代码


解决方法


$ rm ~/Library/Caches/CocoaPods/search_index.json$ pod update
复制代码


  1. pod trunk push 时出现如下错误:


[!] Validating podspec -> xxx    - ERROR | [iOS] unknown: Encountered an unknown error ([!] /usr/local/bin/git clone https://github.com/ /var/folders/y7/n65v0jv56m1_7cnw2_rgkw_40000gn/T/d20200730-14094-1fdff6i --template= --single-branch --depth 1 --branch 4.0.1
Cloning into '/var/folders/y7/n65v0jv56m1_7cnw2_rgkw_40000gn/T/d20200730-14094-1fdff6i'...error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60fatal: The remote end hung up unexpectedlyfatal: early EOFfatal: unpack-objects failed) during validation.
[!] The spec did not pass validation, due to 1 error.
复制代码


解决方法


网上查询都是说打 tag,重复几次均无效,暴力解决 -> 删除远程仓库重新提交 -> 成功。


  1. pod trunk push 时出现如下错误:


[!] Authentication token is invalid or unverified. Either verify it with the email that was sent or register a new session.
复制代码


解决方法


① 查询注册信息


$ pod trunk me
复制代码


② pod trunk register 邮箱 名字


$ pod trunk register xxx@dync.cc yusheng
复制代码


③ 查收邮件,点击邮件链接,重新提交即可。



发布于: 3 小时前阅读数: 6
用户头像

实时交互,万物互联! 2020.08.10 加入

实时交互,万物互联,全球实时互动云服务商领跑者!

评论

发布
暂无评论
ios技术分享| iOS 发布 framework 到 Cocoapods 以及常见问题