前言
Cocoapods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库,以及将自己的项目中的公共组件交由它去管理。
下面是结合GitHub来创建私有pods.
网上有很多资料,也写得很好,自己整理了一下适合自己的思路.
要注意的就是如果项目中有其他同事共同开发的话,你还要给他这个Git仓库的权限。
准备工作
作为一个iOS开发,肯定环境是OK, 需要准备好下面的环境:
- CocoaPods
- GitHub
- GitHub的两个个私有库地址(一个是用来podspec使用, 一个是用来存放源码demo)
开始:
1.创建github私有仓库
2.创建私有Spec Repo
PrivatePodsSpecs名字一般都是和github上面的一致
# pod repo add [Private Repo Name] [GitHub HTTPS clone URL]
$ pod repo add PrivatePodsSpecs https://github.com/lxiaokai/PrivatePodsSpecs.git
如果成功的话进入到~/.cocoapods/repos目录下就可以看到PrivatePodsSpecs这个目录了。
3.创建Pod项目工程文件(选择一个自己的路径文件夹)
$ pod lib create DemoPods
执行命令的时候会问一些小问题,自行抉择
完成之后会在会创建下面的文件内容:
备注:Classes放lib,资源文件放到Assets这个文件夹。
然后我在classes里面建立一个 "ViewController.swift"文件,并且上传到github
$ git add .
$ git commit -s -m "Initial Commit of Library"
$ git remote add origin https://github.com/lxiaokai/DemoPods.git #添加远端仓库
$ git push origin master #提交到远端仓库
因为podspec文件中获取Git版本控制的项目还需要tag号,所以我们要打上一个tag,
$ git tag -m "first release" 0.1.0
$ git push --tags #推送tag到远端仓库
4.编辑DemoPods.podspec文件
字段说明,仅供参考
s.name:名称,pod search搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version:版本号,to_s:返回一个字符串 就是我们项目中刚才打的tag
s.author:作者
s.homepage:项目主页地址
s.summary: 项目简介
s.source:项目源码所在地址
s.license:许可证
s.platform:项目支持平台
s.requires_arc: 是否支持ARC
s.source_files:需要包含的源文件 这里最好放在spec的同级目录,然后指定目录下所有h和m文件
s.public_header_files:需要包含的头文件
s.ios.deployment_target:支持的pod最低版本
其他一些非必要字段
s.social_media_url:社交网址
s.resources:资源文件
s.dependency:依赖库,不能依赖未发布的库
编辑之后需要验证一下,查看是否有错误信息,具体错误会有提示,按照提示修改即可.
$ pod lib lint
虽然有警告,但是不影响
5.向Spec Repo提交podspec
向Spec Repo提交podspec需要完成两点一个是podspec必须通过验证无误,在一个就是删掉无用的注释(这个不是必须的,为了规范还是删掉吧)。 向我们的私有Spec Repo提交podspec只需要一个命令
$ pod repo push PrivatePodsSpecs DemoPods.podspec --verbose --allow-warnings
前面的是podspecs, 后面的是需要上传的名字(需要在DemoPods.podspec路径下执行)
错误: 如果执行这个命令的时候build success 但是 pull 失败的时候,可以git上面建立一个readme文件或者建立仓库的时候勾选也可以
完成之后这个组件库就添加到我们的私有Spec Repo中了,可以进入到~/.cocoapods/repos/PrivatePodsSpecs目录下查看, github上面也可以查看到
至此,我们的这个组件库就已经制作添加完成了
6.测试使用
建立一个项目,pod一下就可以了