阐述
随着iOS的不断发展,越来越多的开发者开始使用CocoaPods来管理他们的第三方。使用Pods时,我在考虑Pods能不能给自己更大的帮助,改变现在的开发风格。
制作
为了表示对CocoaPods的尊重,首先附上CocoaPods Github官方链接: https://github.com/CocoaPods 。
下方将介绍Pods制作步骤(文中多处操作使用Git命令,用户可使用SourceTree来操作)
一、在Github中创建一个仓库(Repository)
相信大家都有Github账号,此处忽略关于Github账号申请细节。
上方各部分含义:
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 仓库地址
三、本地创建 .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" => "yanglei3kyou@126.com" }
# Or just: s.author = "yanglei3kyou"
# s.authors = { "yanglei3kyou" => "yanglei3kyou@126.com" }
# 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的文件夹中,对应的目录结构如图:
六、关于Demo工程
为了快速地教会别人使用我们的Pods依赖库,通常需要提供一个Demo工程。我创建的Demo工程放到了一个名为MethodFactoryDemo的文件夹中,该目录包含的文件如下图所示:
七、关于README.md
使用github的人应该都熟悉这个文件,它是一个成功github仓库必不可少的一部分,使用的是markdown标记语言,用于对仓库的详细说明。
添加完上方文件后,Github本地仓库目录就如下图所示
八、将本地仓库提交到 Github 中
1、pod 验证
$ set the new version to 1.0.0
$ set the new tag to 1.0.0
$ pod lib lint
注意: 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
九、不发布此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。
官方指导文档为
我们简化一下流程,就变成了
1.在pod trunk注册自己的信息
$ pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'
2.找到自己封装的xxx.podspec文件,并上传
$ pod trunk push xxx.podspec
3.提交完之后,若想查看自己的库,可以直接使用
$ pod search xxx