天天看点

iOS 记录之 CocoaPods Pods的制作(新版方式)

阐述 随着iOS的不断发展,越来越多的开发者开始使用CocoaPods来管理他们的第三方。使用Pods时,我在考虑Pods能不能给自己更大的帮助,改变现在的开发风格。

制作 为了表示对CocoaPods的尊重,首先附上CocoaPods Github官方链接: https://github.com/CocoaPods 。 下方将介绍Pods制作步骤(文中多处操作使用Git命令,用户可使用SourceTree来操作) 一、在Github中创建一个仓库(Repository) 相信大家都有Github账号,此处忽略关于Github账号申请细节。

iOS 记录之 CocoaPods Pods的制作(新版方式)

上方各部分含义: 1、Repository name 代码仓库名称,也可以说是Pod的名字

2、Description 代码仓库的描述信息

3、仓库的公开性 随个人能力选择,Public免费,Private收费

4、是否创建一个默认的README文件 完整的代码仓库,都需要README

5、是否添加.gitignore文件 .gitignore文件里面记录了若干文件类型,凡是该文件包含的文件类型,git都不会将其纳入到版本管理中,是否选择看个人需要。

6、license类型 正规的仓库都应该有一个license文件,Pods依赖库对这个文件的要求更严,是必须要有的。因此最好在这里让github创建一个,也可以自己后续再创建。我使用的license类型是MIT

二、Clone 这个仓库到本地目录(可使用SourceTree等其它svn工具) Terminal 命令 $ git clone 仓库地址

iOS 记录之 CocoaPods Pods的制作(新版方式)

三、本地创建 .podspec 文件 (spec 规范) 1、简述 .podspec 文件 该文件为Pods依赖库的描述文件,每个Pods依赖库必须有且仅有一个描述文件,名称需与创建的依赖库名称保持一致。

2、.podspec 文件相关 a 示例内容 Pod::Spec.new do |s|

  s.name         = "MethodFactory"   s.version      = "0.0.1"   s.summary      = "MethodFactory is a Good Factory of Method."

  s.description  = <<-DESC                    MethodFactory is a Good Factory of Method ,it has too much nice method.                    DESC

  s.homepage     = "https://github.com/yanglei3kyou/MethodFactory"   # s.screenshots  = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"

  s.license      = "MIT"   # s.license      = { :type => "MIT", :file => "FILE_LICENSE" }

  s.author             = { "yanglei3kyou" => "[email protected]" }   # Or just: s.author    = "yanglei3kyou"   # s.authors            = { "yanglei3kyou" => "[email protected]" }   # s.social_media_url   = "http://twitter.com/yanglei3kyou"

  s.platform     = :ios

  s.source       = { :git => "https://github.com/yanglei3kyou/MethodFactory.git", :tag => "0.0.1" }

  s.source_files  = "MethodFactory", "MethodFactory*"

  s.public_header_files = "MethodFactory*.h"

  s.vendored_libraries = 'MethodFactory/*.a'

  s.frameworks = "Foundation", "UIKit"

  s.requires_arc = true

end

b 参数解释 s.license Pods依赖库使用的license类型

s.source_files 表示源文件的路径,注意这个路径是相对podspec文件而言的。

s.frameworks 需要用到的frameworks,不需要加.frameworks后缀。

3、创建.podspec文件 (在 Git仓库根目录) a 创建文件,填写内容(上方示例内容),根据内容进行修改 b Terminal命令 $ pod spec create MethodFactory

四、关于LICENSE文件 CocoaPods 要求所有的Pods依赖库都必须包含license文件,否则在发布CocoaPods官方时不予通过验证。 license的类型有很多种,详情可以参考网站https://tldrlegal.com。在创建github仓库的时候,已经选择了MIT类型的license。

五、关于主类文件 创建Pods依赖库就是为了方便别人使用我们的成果,比如我想共享给大家的MethodFactory类,提供给广大用户使用,这个类自然是必不可少的。我把这个类包含的两个文件放到一个名称为MethodFactory的文件夹中,对应的目录结构如图:

iOS 记录之 CocoaPods Pods的制作(新版方式)

六、关于Demo工程 为了快速地教会别人使用我们的Pods依赖库,通常需要提供一个Demo工程。我创建的Demo工程放到了一个名为MethodFactoryDemo的文件夹中,该目录包含的文件如下图所示:

iOS 记录之 CocoaPods Pods的制作(新版方式)

七、关于README.md 使用github的人应该都熟悉这个文件,它是一个成功github仓库必不可少的一部分,使用的是markdown标记语言,用于对仓库的详细说明。 添加完上方文件后,Github本地仓库目录就如下图所示

iOS 记录之 CocoaPods Pods的制作(新版方式)

八、将本地仓库提交到 Github 中 1、pod 验证 $ set the new version to 1.0.0 $ set the new tag to 1.0.0 $ pod lib lint

iOS 记录之 CocoaPods Pods的制作(新版方式)

注意: pod 验证过程中,出现任何warning 或者 error信息,验证都会失败,请按照提示信息,进行修改

2、上传到 Github 中 $ git add -A && git commit -m “Release 1.0.0." $ git tag ‘1.0.0' $ git push --tags $ git push origin master

iOS 记录之 CocoaPods Pods的制作(新版方式)

九、不发布此Pods,直接使用Pods 如果没有计划在CocoaPods中发布此Pods,可直接在项目的Podfile文件中添加该 Pods并使用。 pod ‘MethodFactory’, :git => 'https://github.com/yanglei3kyou/MethodFactory.git'

十、上传pod spec文件到 CocoaPods官方仓库中 新版CocoaPods上传pod spec再也不需要像以往那种 - fork仓库合并代码了。 新版CocoaPods引入 pod trunk 来方便开发者上传自己的pod。

官方指导文档为 http://guides.cocoapods.org/making/getting-setup-with-trunk

我们简化一下流程,就变成了 1.在pod trunk注册自己的信息

$ pod trunk register [email protected] 'Orta Therox' --description='macbook air'

iOS 记录之 CocoaPods Pods的制作(新版方式)

2.找到自己封装的xxx.podspec文件,并上传

$ pod trunk push xxx.podspec

iOS 记录之 CocoaPods Pods的制作(新版方式)

3.提交完之后,若想查看自己的库,可以直接使用

$ pod search xxx

iOS 记录之 CocoaPods Pods的制作(新版方式)