iOS组件化之私有Pods

3,037 阅读3分钟

前言

Cocoapods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库,以及将自己的项目中的公共组件交由它去管理。

下面是结合GitHub来创建私有pods.

网上有很多资料,也写得很好,自己整理了一下适合自己的思路. 要注意的就是如果项目中有其他同事共同开发的话,你还要给他这个Git仓库的权限。

准备工作

作为一个iOS开发,肯定环境是OK, 需要准备好下面的环境:

  1. CocoaPods
  2. GitHub
  3. 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一下就可以了

个人博客,欢迎访问