iOS开发iOS开发iOS 开发成长中心

[原创]使用Cocoapods从零开始搭建组件库

2017-02-15  本文已影响101人  程序员阿杰

很久以前写的公司内部的分享资料,现在拿出来供大家参考。

Cocoapods也不是什么新东西了,基本用法按下不表,我最喜欢它的两个功能是:LocalPods和cocoapods私有库。本文以搭建一个组件库为例介绍如何使用cocoapods私有库。

1、搭建组件库

具体分为7步

a) 申请开通git仓库:http://git.xxx.cn/apps/iOSComponents.git

b) 在git仓库中初始化Spec Repo

c) 开发组件

d) 创建该组件对应的Podpodspec文件,转成Pod

e) 将组件的代码放入代码仓库(可以是git或者svn)

f) 本地测试配置好的podspec文件是否可用

g) 向Spec Repo中提交podspec

步骤a)没什么好说的,找公司的git管理员申请一个git仓库即可,注意要给合作的同学们都开好相应的权限

步骤b)

每个pod工程都有一个索引文件以.podspec结尾,该文件描述了pod工程的所有内容,包括最重要的源码地址以及依赖关系。使用pod update来添加新的依赖时,cocoapod就是先找到新依赖的.podspec文件,再顺着它来下载、配置新工程。而cocoapod去寻找.podspec文件的地方,就是Spec Repo。说得更简单些,一个Spec Repo就是一个Git Repo,它的文件结构如下:

.

├── Specs

          └── [SPEC_NAME]

                   └── [VERSION]

                            └── [SPEC_NAME].podspec

了解原理后,执行下面这条命令让本机的cocoapod认识我们刚申请的git仓库,并把它当成Spec Repo

命令声明:# pod repo add [Private Repo Name] [GitHub HTTPS clone URL]

用法举例:$ pod repo add ComSpecs http://git.xxx.cn/apps/iOSComponents.git

步骤c) 开发组件

假装我们开发完了一个组件,名字叫Component1

步骤d) 转化成Pod

先把Component1文件夹下的内容剪切到其他地方(比如A文件夹)

先cd到Component1文件夹下然后执行如下命令

$ pod lib create Component1Lib

之后他会问你四个问题,1.是否需要一个例子工程;2.选择一个测试框架;3.是否基于View测试;4.类的前缀;4个问题的具体介绍可以去看官方文档,我这里选择的是1.no;2.Specta/Expecta;3.no;4.PTL。 问完这4个问题他会自动执行pod install命令创建项目并生成依赖。生成的文件夹结构如下

Component1Lib

├── LICENSE                              #开源协议 默认MIT

├── Pod                                      #组件的目录

│  ├── Assets                            #资源文件

│  └── Classes                              #类文件

├── Component1Lib.podspec          #第三步要创建的podspec文件

└── README.md                                #markdown格式的README

然后,将刚才提到Component1文件夹内原来的内容拷贝回来,源码放进Classes文件夹,资源文件放进Assets文件夹。再用文本编辑器打开Component1Lib.podspec,对照一下里面各种参数是否正确,具体用法参见官网例子,这里不展开讨论。

e) 提交代码

将刚才我们修改后的Component1Lib文件夹提交到代码仓库,可以是git也可以是svn,区别就是Component1Lib.podspec中source的写法会有区分。

f) 本地测试podspec文件

在Component1Lib文件夹下执行如下命令

$ pod lib lint --verbose

可能会有些warning或者error,根据提示修改即可

g) 向Spec Repo推送.podspec

执行如下命令:

$ pod repo push DJSpecs PodTestLibrary.podspec


至此,我们的私有库创建完毕,并且提交了第一个组件,然后,我们来看看,其他的同学该如何使用这个组件库。

2、使用组件库

a) 添加私有pods库

命令声明:# pod repo add [Private Repo Name] [GitHub HTTPS clone URL]

用法举例:$ pod repo add ComSpecs http://git.xxx.cn/apps/iOSComponents.git

添加完之后,本机的Cocoapod在搜索新的Pod依赖时,就会顺道来我们的ComSpecs中寻找。

b) 编辑podfile文件,并update

这步比较简单,冒号后面是我们组件代码真正的地址,理论上不写也可以的,但是实践过程中发现写了比较保险

platform :ios, '7.0'

pod 'Component1Lib', :svn => "http://svn.xxx.com/trunk/ios/Components/Component1Lib"

再执行pod update,Component1Lib就添加到了你的主工程中。

上一篇 下一篇

猜你喜欢

热点阅读