创建pod库-podspec

#cocoapods #依赖管理 #podspec

创建pod库

这里以SYDCentralPivot 为例,阐述pod库从创建到发布的过程。

1. pod lib

pod lib命令是用来创建 develop pod 库:

  • pod lib create : 创建一个pod库

  • pod lib lint : 验证一个pod库

2. 创建一个pod库

首先在项目目录下执行命令:

经过一系列的配置(平台,开发语言,测试框架,是否创建Demo),就完成了pod库的创建。

在项目目录下,生成了Demo,源码目录以及配置文件:

  • *.podspec

  • Example

  • pod库目录 (SYDCentralPivot)

  • LICENSE

  • README.md

3. 打开Demo 工程

podfile中可以看到Demo工程以相对路径的方式引入了SYDCentralPivot库。此时,SYDCentralPivot属于 Development Pod,在 Development Pods目录下,而不是在Pods 目录下。

Development Pod普通 Pod 的 区别

Development Pod 可以直接修改源文件,并在主工程中编译运行。而 普通 Pod 是不可以的

4. 在pod库中添加或者修改源码

直接将需要的源文件拖到 SYDCentralPivot/Class文件夹下; 在 podspec文件的配置中,源文件都在该目录下

执行pod install后,源文件就会出现在 Development Pods目录下:

在 Demo 工程中,调用pod库的代码

5. podspec文件

podspec 文件是对pod库命名,地址,版本,源文件,资源文件以及依赖的具体描述。

  • version

  • summary,description

  • homepage

  • source

  • source_files

  • resource_bundles

  • public_header_files

  • dependency

  • frameworks

  • vendored_frameworks

  • libraries

  • vendored_libraries

在修改了podspec文件后,记得使用pod lib lintpod spec lint验证修改是否有效。

6. 添加资源文件

如果希望在Pod库中添加资源文件(图片,音频以及其他一些配置文件等),就需要用到配置resource_bundles

而在代码中,并不能够通过MainBundle访问这些资源文件,因为这些文件并不在主工程下,而是在主工程依赖的库中。

5. 将pod库推送到远程

这里推送到Github,首先在Github上创建一个仓库,将仓库克隆到本地,将pod库复制到本地的仓库中。

  • 修改 podspec文件,

  • 提交到远端库

  • 可以直接使用地址依赖pod库

6. 将podspec推送公共pod repo 或者 私有pod repo中

当把podspec文件推送到公共pod repo后,你就可以通过 pod search 搜索该pod以及直接使用名字安装pod库

6.1 推送到公共pod repo

pod trunk [COMMAND] 是用来和 Cocoapods API 交互的命令.

  • 首次推送pod,需要注册账号

  • pod trunk push [PATH]

    pod trunk push 将本地开发的pod库的podspec文件推送公共Cocoapods库中,即Cocoapods Specs

    在推送之前,pod 还会验证 podspec 文件是够有效。如果不通过的话,就无法推送上去

    因此在推送之前必须使用 pod lib lint 或则 pod spec lint 去验证 podspec 文件

    后期pod库更新版本后,同样使用 pod trunk push 推送。

6.2 推送到私有pod repo

7. 创建 subspec

subspec 需要指定子库的源文件和头文件

参考文档

podspec 语法

制作Cocoapods库

使用pod lib创建pod库

iOS组建化—私有库

最后更新于

这有帮助吗?