- 制作pod库
-
发布代码到Cocopods ✔️
- 遇到的bug
一、介绍
关于CocoaPods的介绍不在本文的主题范围内,如果你是iOS开发者却不知道CocoaPods,那可能要面壁30秒了。直奔主题,这篇文章主要介绍如果把你的代码发布到CocoaPods代码库中,让别人可以使用“pod search yourOpenProject”命令查找到你的代码。
本文使用要说的是trunk方式,用流程图表示如下:(图片来自CocoaPod官方blog)
下面请跟着我的步伐一步一步往下走,我会告诉你其中的一些坑以及如何应对这些坑:
二、注册trunk
在注册trunk之前,我们需要确认当前的CocoaPods版本是否足够新。trunk需要pod在0.33及以上版本,如果你不满足要求,打开Terminal使用ruby的gem命令更新pod:
sudo gem install cocoapods
更新结束后,我们开始注册trunk:
pod trunk register 2502305577@qq.com 'qwer' --verbose
邮箱以及用户名请对号入座。用户名我使用的是Github上的用户名。--verbose参数是为了便于输出注册过程中的调试信息。执行上面的语句后,你的邮箱将会受到一封带有验证链接的邮件,如果没有请去垃圾箱找找,有可能被屏蔽了。点击邮件的链接就完成了trunk注册流程。使用下面的命令可以向trunk服务器查询自己的注册信息:
pod trunk me
输出如下信息就表示你注册成功,可以进行下面的流程:
三、配置PodSpec
一)、设置下PodSpec
个人认为需要改动的部分二)、通过trunk推送podspec文件
在推送podspec文件之前你需要确认以下几点:
1、确保你的源码已经push到Github上。如果还没push源代码,可以用Terminal cd到本地源代码的根目录,执行:
# 单独添加某个文件
git add XXX
# 全部添加
git add .
# 提交到本地
git commit -m "第一次提"
# 关联到远程
git remote add origin https:XXXX.git
# 查看远程关联的版本
git remote -v
# 推送
git push origin master
当然,你也可以使用SourceTree等GUI形式的Git客户端进行代码的推送操作。
2、确保你所push的代码已经打上"version tag",也就是给源代码打上版本号标签:
# 打个tag
git tag '0.0.1'
# 查看列表
git tag --list
# 推送
git push --tags
只有确保了以上两点,CocoaPods才能更准确地找到你的repo。
现在我们开始通过trunk上传你的podspec文件。先cd到podspec文件所在目录,执行:
pod trunk push MLTestDemo.podspec
文件名自行对号入座。上面的代码做了三件事:(可以对着文章开头的流程图看)
1、验证你的podspec文件是否合法。在trunk方式之前我们一般用“pod lib lint”命令进行验证。
2、上传podspec文件到trunk服务器(其实最终也会自动添加到https://github.com/CocoaPods/Specs中,只是使用trunk方式省去了以前先fork在pull request的繁琐操作)
3、将你上传的podspec文件转成json格式文件
执行上面的push操作,就相当于你把你的源代码提交给CocoaPods团队审核了,一般需要一到两个工作日可以审核结束。这种心情有点像提交App给Apple审核,哈哈。
*更正:现在CocoaPods审核只需要几秒钟或者几分钟就可以完成了。
四、更新本地pod依赖
在trunk push后,先用"pod search"查找一下你的代码,有结果的话就欢天喜地;没有的话执行"pod setup"进行本地依赖库更新,再search。
五、遇到的问题
如果不出意外,大多数同学在执行上述命令后会卡在“Setting up CocoaPods master repo”这一句中。我的经验是一个字:等!不要关闭Terminal,大概半小时到一小时左右就会完成,提示“Setup completed”。(第一次会比较慢,第一次以后只需要几秒钟即可完成)为什么会卡这么久呢?
pod setup其实在做这么一件事:Cocoapods在将https://github.com/CocoaPods/Specs的信息下载到你电脑的~/.cocoapods
目录下并进行文件比对,总数据大小大约在100MB左右,再加上服务器在国外,因此速度会比较慢。在执行过程中你也可以新开一个Terminal窗口,cd到~/.cocoapods目录,用du -sh *
来查看下载进度。
网友评论