本文是一个教你使用CocoaPods管理开源模块的文章。
作为一个 iOS 开发者,几乎所有人都使用过 CocoaPods 。作为 iOS 开发中最常用最有名的类库管理工具,给开发者带来了很大的便利。而且现在很多的第三方类库都支持 Pod . 如果一名开发者想要将自己的代码开源给更多的人使用,支持 CocoaPods 肯定是更好的办法。
最近一直在考虑将公司的项目使用 CocoaPods 来模块管理,所以将前段时间重新写的 SYNetwork
进行了对其他类的解耦,在这个过程中学到了很多组织代码的经验, 加上最近正在读的 《设计模式之禅》 逐渐意识到之前自己组织代码的能力还是有所欠缺,很多模块之间也进行了一些完全没有必要的耦合,这其实是很烂的编码形式。
由于公司并没有构建自己的 git 服务器, 而是将代码托管在了 oschina ,所以索性将这个模块开源并放在了github上。然后尝试使用 CocoaPods 来管理这个模块,并在公司其他几个项目中进行推广。
这只是我模块化项目的第一步。
好了, 扯淡部分完成。
在 GitHub 创建代码仓库
因为 CocoaPods 始终还是要将代码放在 GitHub 上的,所以我们还是创建一个代码仓库来保存这些代码吧!
这一步完成之后需要记住两个内容
- 项目的 ssh地址
git@github.com:CepheusSun/SYNetwork.git
- 项目的名称
SYNetwork
在本地创建 podspec 文件
在终端中执行命令
|
|
终端会提示
Cloning
https://github.com/CocoaPods/pod-template.git
intopod
.
克隆完成之后会连续的回答几个问题,根据实际情况来选择吧!
回答问题之后,在桌面上会有一个SYNetwork
文件夹。在这个文件夹中又有一个文件夹SYNetwork
里面有两个文件
- Classes
- Assets
其中Classes 存放的你的源代码,Assets 应该好似一些图片资源什么的,我这个仓库里面并没有用到。
还是重新整理一下Clone下来的SYNetwork吧
- 在 Example 文件中是自动创建的 demo 项目, 回答问题之后会自动打开这个项目,不用管它,果断的关掉它,然后 cd 到这个文件夹中
pod install
一下。- 将我们写的代码放进
SYNetwork/SYNetwork/Classes/
文件夹中。- 重新 cd 到 example 文件夹,执行
pod update
完成上面三步之后,可以在你的 demo 项目中尝试使用一些你的库,不过我没有,偷了一个懒😊
在podspec文件中编码
我使用的是Sublime Text
打开第一个SYNetwork
文件夹中的SYNetwork.podspec
文件。这个文件就是配置 CoaoaPods 基本信息的文件
|
|
需要注意的是
1.
s.source_files
s.public_header_files
中设置的文件路径一定应该是正确的。不然后面会出问题。
2.
s.version
s.source
中设置的版本应该要对上吧,我不知道对不上会有什么问题。这个地方也会有很多的坑。还有就是至今没明白为什么我如果用 0.1.0
这样会报错,所以我就用了 1.0
验证一下
在终端中执行
|
|
如果出现
|
|
就是验证通过
不然就需要去改各种问题了
注册CocoaPods
要上传你的代码到 CocoaPods 肯定也需要注册自己的身份。
|
|
成功之后 CocoaPods 会发送一验证邮件到上面的邮箱,确认一下就OK
这里的your_name
非常建议你使用 GitHub 的用户名 邮箱也是
上传
|
|
这了的 3.0 就是SYNetwork.podspec
中的 3.0
最后搜索一下吧
|
|
总结
一些坑吧!
路径不对
Unable to interpret the specified path as a podspec
看你的 tag 标记和 podSpec 文件的 version 字段是否一致
账号验证失败
Authentication token is invalid or unverified. Either verify it with the email that was sent or register a new session.
按照如下步骤:
pod trunk register 你的邮箱
- 打开邮箱验证
- 重新执行pod trunk push podspec 提交podspec文件