【CocoaPods】细说 pod trunk
前几天手贱改了下 GitHub 用户名(LeoiOS -> iTofu),然后发现整个世界都崩溃了。。。
逗比的开始
如个人博客等各处 GitHub 链接慢慢找出来替换(直到现在我都不确定全部替换完了。。。),CocoaPods 上个人库源地址逐个更新。。。(此处略去一千字)
在更新 CocoaPods 库源地址的时候还发现一个悲催的问题,我修改完 GitHub 用户名后再去更新库,不让我更了。。。
1 | [!] You are not allowed to push new versions for this pod. |
我勒个去,这。。。这是要挨骂的节奏?亲爱的用户们轻拍。。。第一反应是去啃 CocoaPods 文档,想了想,啃啥文档,直接去提了个 Issue。。。所幸作为开源社区的一份子,CocoaPods 的开发者们尤其友好,主要开发者之一 segiddins 很快也很热心地帮我解决了这个问题。
原来如此
在 segiddins 的解释下弄清楚了,其实这个问题并非因为我更换 GitHub 用户名产生(P关系都木),而是我更换了邮箱地址,导致 CocoaPods 认为我是另一名用户,进而中断了我的更新请求。
我是这样解决的
解决方案也不复杂,流程如下:
- 用原邮箱登录(确认库拥有者身份)
- 添加新邮箱到目标库的拥有者列表
- 用新邮箱登录
- (可选)从目标库的拥有者列表移除老邮箱
命令是这样的:
1 | pod trunk register [OLD EMAIL] [USERNAME] |
哦了,解决了~ 再次向友好的 segiddins 致谢~
加点料,细说 Pod trunk
安利一下可能是你用 CocoaPods 时打交道最多的 pod trunk
,其实呢,这些命令在 CocoaPods API 上都能找得到,只不过老外的思维和我们略有不同,你可能不知道这个命令原来是干这个的罢了。好比上面这个问题,老外提供的这几个步骤(德国人吧这么认真。。。),如果是国人写的话可能直接一个 pod trunk change owner A to B
命令就完了。。。
pod trunk register [EMAIL] [USERNAME]
注册&登录。
在你的 Mac 上只需要运行一次,然后去邮箱中点击确认邮件的链接即可,当然你也可以使用该命令在不同的账号中来回切换。
示例:
1 | pod trunk register devtip@163.com `Leo` |
pod trunk push [PATH]
发布库。
我一般在本地操作,PATH 一般就是 PodRepName.podspec。不过官网文档上说 PATH 缺省是当前目录,所以 cd 到库的本地目录,然后直接 pod trunk push
应该也是可以滴!
示例:
1 | pod trunk push LCActionSheet.podspec |
pod trunk me
查看自己的账号信息,以及账号拥有的仓库。
示例:
1 | bogon:hexo Leo$ pod trunk me |
pod trunk info [POD REP NAME]
查看某个库的信息,包括拥有者、各版本版本号及发布时间。
示例:
1 | bogon:hexo Leo$ pod trunk info LCActionSheet |
pod trunk add-owner [POD REP NAME] [OWNER-EMAIL]
pod trunk remove-owner [POD REP NAME] [OWNER-EMAIL]
添加/移除某个库的拥有者,上文有提到该命令。
你必须先运行过 pod trunk register
登录过,并且操作的是你账号拥有的库。
pod trunk deprecate [POD REP NAME]
不赞成使用,让某个库过期的意思。
如果导入声明 deprecate 的库,应该会收到警告。
该命令貌似是 CocoaPods V 1.0.0 推出来的,由于目前 V 1.0.0 是 beta 版,我使用的正式版是 V 0.39.0,所以暂时无法演示该命令。
pod trunk delete [POD REP NAME] [VERSION]
删除某个库的某个版本,该行为不可回退。
⚠️ 官方文档也明确表示 不赞成 使用该命令,建议使用 pod trunk deprecate
代替,以防止导入该库的用户项目无法运行,请注意这是一种及其不友好且让人恼火的行为!
该命令暂无示例,原因同上条。
题外话
顺带吐槽下国内社区对 CocoaPods 等开源项目的关注度,比如 CocoaPods,用国内的搜索引擎某度搜到的百分之九十九都是安装教程,更新教程,我靠。。。面包有了我们能不能考虑考虑黄油?
再提下,好像 GitHub Pages 的 帮助页 被墙了?貌似是这几天某站在亚太放了台服务器,然后某墙新增屏蔽时的误操作?各位珍重。。。
联系与捐赠
- Mail:
echo bGVvZGF4aWFAZ21haWwuY29tCg== | base64 -D
- GitHub:iTofu