CocoaPods 创建私有 podspec

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

前言

创建一个开源pod库,需要注册CocoaPods

终端执行:$ pod trunk register 邮箱地址 '用户名' --verbose

这里我们一般使用github邮箱和用户名, 然后在你的邮箱中会收到确认邮件, 在浏览器中点击链接确认即注册成功;

CocoaPods 创建私有 podspec_第1张图片
注册成功

查看自己的注册信息,以后当你有了自己的开源Pod库,也可以用此方式随时查看自己发布过的Pods

终端执行  $ pod trunk me
CocoaPods 创建私有 podspec_第2张图片
注册信息

使用Cocoapods创建私有的podspec库包含以下几个步骤:

  • 创建并设置一个私有的 Spec Repo
  • 创建 Pod 的所需要的项目工程文件,并且有可访问的项目版本控制地址。
  • 创建 pod 所对应的 podspec 文件
  • 本地测试配置好的 podspec 文件是否可用
  • 向私有的 Spec Repo 中提交 podspec
  • 在个人项目中的 Podfile 中增加刚刚制作好的 pod 并使用
  • 更新维护 podspec
1. 创建私有 Spec Repo

Spec Repo 是所有的 Pods 的一个索引,就是一个容器,所有公开的 Pods 都在这个里面,他实际是一个 Git 仓库 remote端 在 GitHub上,但是当你使用了 Cocoapods 后他会被 clone 到本地的 ~/.cocoapods/repos 目录下,可以进入到这个目录看到 master
文件夹就是这个官方的 Spec Repo 了.

创建一个类似于 master 的私有 Spec Repo

Terminal 执行 $ pod repo add bitauto-specs git@gitlab.**.com:WP/APP/**.git

执行成功后在 ~/.cocoapods/repos 目录下可以看到 bitauto-specs 这个目录.

2. 创建Pod项目工程文件

如果是有现有的组件项目,并且在 Git 的版本管理下,那么这一步就算完成了,可以直接进行下一步了.
使用 pod 创建 Pod 项目, 相关的文档介绍是Using Pod Lib Create

  • cd 到要创建项目的目录,然后

    Terminal 执行 $ pod lib create BitautoTool
    

之后他会问你几个问题:

1.你想使用哪种语言
2.是否需要一个例子工程;
3.选择一个测试框架;
4.是否基于View测试;
5.类的前缀;
这几个问题的具体介绍可以去看官方文档.
问完这几个问题他会自动执行 pod install 命令创建项目并生成依赖。

接下来就是向 Pod 文件夹中添加库文件和资源,并配置 podspec 文件,我把共有组件放入 Pod/Classes 中,然后进入Example 文件夹执行 pod update 命令,再打开项目工程可以看到刚刚添加的组件已经在 Pods 子工程下 Development Pods/BitautoTool 下了.

PS:这里需要注意的是每当你向 Pod 中添加了新的文件或者以后更新了 podspec 的版本都需要重新执行一遍 pod update 命令

测试无误后需要将该项目添加并推送到远端仓库.
因为 podspec 文件中获取 Git 版本控制的项目需要 tag 号,所以我们需要打上一个 tag.

然后开始编辑 podspec 文件,没有涉及到的字段可以去官方文档查阅.

编辑完 podspec 文件后验证这个文件是否可用,详情见 CocoaPods创建公有pod库

3. 创建podspec文件

如果从 第2步跳过来 的(否则跳过此步),已经有了现成的项目,那么就需要给这个项目创建一个 podspec 文件,创建它需要执行 Cocoapods
的另外一个命令,官方文档

Terminal 执行 $ pod spec create BitautoTool git@**.com:WP/APP/**.git

执行完之后,就创建了一个 podspec 文件,他其中会包含很多内容,可以按照我之前介绍的进行编辑,没用的删掉。编辑完成之后使用验证命令验证一下,详情见 CocoaPods创建公有pod库
验证无误就可以进入下一步了.

4. 本地测试podspec文件

我们可以创建一个新的项目,在这个项目的 Podfile 文件中直接指定刚才创建编辑好的 podspec 文件,看是否可用。 在 Podfile 中我们可以这样编辑,有两种方式:

platform :ios, '8.0'

pod 'BitautoTool', :path => '/Users/**/Documents/BitautoTool'      # 指定路径
pod 'BitautoTool', :podspec => '/Users/**/Documents/BitautoTool/BitautoTool.podspec'  # 指定podspec文件

然后执行 pod install 命令安装依赖,打开项目工程,可以看到库文件都被加载到 Pods 子项目中了,不过它们并没有在Pods目录下,而是跟测试项目一样存在于 Development Pods/BitautoTool 中,这是因为我们是在本地测试,而没有把 podspec 文件添加到Spec Repo 中的缘故.

5. 向Spec Repo提交podspec

向私有 Spec Repo 提交 podspec 只需要一个命令

Terminal 执行 $ pod repo push bitauto-specs BitautoTool.podspec  #前面是本地 `Repo` 名字,后面是 `podspec` 名字

完成之后这个组件库就添加到我们的私有 Spec Repo 中了,可以进入到 ~/.cocoapods/repos/bitauto-specs 目录下查看。

再去看我们的 Spec Repo 远端仓库,也有了一次提交,这个podspec也已经被 Push 上去了。

至此,我们的这个组件库就已经制作添加完成了,使用 pod search 命令就可以查到我们自己的库了。

更新库的时候如果提示找不到本地库,执行以下命令:

Terminal 执行 $ git reset --hard

然后再执行

Terminal 执行 $ pod repo push 本地仓库名 **.podspec

删除一个私有 Spec Repo

Terminal 执行 $ pod repo remove bitauto-specs

这样这个 Spec Repo 就在本地删除了,我们还可以通过以下命令加回来

Terminal 执行 $ pod repo add bitauto-specs git@**.com:WP/APP/**.git

如果我们要删除私有 Spec Repo 下的某一个 podspec 怎么操作呢,此时无需借助 Cocoapods,只需要 cd~/.cocoapods/repos/bitauto-specs 目录下,删掉库目录

Terminal 执行 $ rm -Rf BitautoTool

然后在将 Git 的变动 push 到远端仓库即可

Terminal 执行 $ git add --all .
git ci -m "remove unuseful pods"
git push origin master

参考资料
使用Cocoapods创建私有podspec

你可能感兴趣的:(CocoaPods 创建私有 podspec)