Skip to content
全部文章
TechiOSCocoaPod

制作一个CocoaPod

最近在码iOS代码的时候发现有一些常用的功能需要经常引用,但是每次都把这个代码贴一遍有点低效率。所以想到可不可以把这些常用的功能做成一个pod,然后工程里面直接pod依赖一下就好了,岂不妙哉

最近在码iOS代码的时候发现有一些常用的功能需要经常引用,但是每次都把这个代码贴一遍有点低效率。所以想到可不可以把这些常用的功能做成一个pod,然后工程里面直接pod依赖一下就好了,岂不妙哉~

1. 在GitHub上创建一个工程

1.1 创建repository

现在公用的pod repo是维护在GitHub上的,所以最方便的方法就是把工程放到GitHub上面。首先要在GitHub上创建一个工程,如下图:

原文图片托管服务已失效,图片暂未迁移。

填写一些基本信息:

原文图片托管服务已失效,图片暂未迁移。

其中license的选择可以参考这篇文章:如何选择开源许可证?

####1.2 clone到本地 创建好之后就可以把项目clone到本地了,

原文图片托管服务已失效,图片暂未迁移。

git clone https://github.com/santosli/SLCocoaPodExpamle.git

2. 创建本地Xcode工程

2.1 创建Cocoa Touch Framework工程

现在就要在本地创建一个工程了,打开Xcode,选择File -> New -> Project,然后选择类型为Cocoa Touch Framework。

原文图片托管服务已失效,图片暂未迁移。

【注意:这里保存工程的时候路径要选择之前clone到本地的目录】

2.2 编写代码

然后就可以在这个工程里面把需要使用的代码放进来了。

原文图片托管服务已失效,图片暂未迁移。

3. 上传工程并配置podspec

3.1 打tag并同步到GitHub

工程开发完成之后就可以把工程同步到GitHub上,同时要打一个tag版本号后面会用到。

git add .
git tag 0.0.1
git push -u origin master --tags

如果一切正常,就可以在GitHub上看到最新提交的变更。

3.2 创建并配置podspec

下面就可以创建podspec了,这个文件相是Pod的一个配置文件。

pod spec create SLCocoaPodExpamle

然后我们就会在目录下看到一个SLCocoaPodExpamle.podspec文件了,用编辑器打开进行编辑:

Pod::Spec.new do |s|

  # 创建的Pod的名字
  s.name         = "SLCocoaPodExpamle"
  
  # 版本号,和之前的tag保持一致
  s.version      = "0.0.1"
  
  # 简单描述
  s.summary      = "a example for making cocoaPod"

  # 具体描述,这个要多写点而且不能和summary重复
  s.description  = <<-DESC
  a example for making cocoaPod, hope it helps.
                   DESC

  # 主页,一般填GitHub地址即可
  s.homepage     = "https://github.com/santosli/SLCocoaPodExpamle"
  
  # license和GitHub上的保持一致
  s.license      = "Apache License, Version 2.0"

  # 作者信息
  s.author             = { "santos" => "hslx111@gmail.com" }

  # 最低支持的版本 
  s.platform     = :ios, "7.0"

  # 代码库Git地址
  s.source       = { :git => "https://github.com/santosli/SLCocoaPodExpamle.git", :tag => "0.0.1" }

  # 需要导入的资源,对应本地的工程地址
  s.source_files  = "SLCocoaPodExpamle/**/*.{h,m}"
  s.exclude_files = "SLCocoaPodExpamle/Exclude"
3.3 验证配置

配置编写好之后,需要验证一下配置的合法性。使用命令:

pod spec lint ./SLCocoaPodExpamle.podspec --verbose

如果有问题,会比较详细的问题描述,根据描述修改即可。如果没有问题就可以进行下一步了。

3.4 上传Pod到仓库

为了让自己和别人都能使用这个Pod,需要把这个Pod上传到Pod的仓库中。

pod trunk push SLCocoaPodExpamle.podspec

到这里基本就已经完成了。

4. 验证

最后使用pod search来验证一下:

原文图片托管服务已失效,图片暂未迁移。

如果能搜索到,说明已经能够正常使用了。OK,可以继续愉快地码代码了。。。