创建podspec文件,为自己的项目添加pod支持

创建GitHub项目

创建GitHub仓库

使用GitHub账户新建库,勾选下面许可证选项
image

clone到本地

创建完后clone到本地,在clone下来的文件里面新建工程,自己的组件放到单独的文件夹。
也可以在已有的工程根目录下创建许可证文件(LICENSE)。

提交项目到GitHub

确保demo没问题后提交到GitHub

1
$ git push origin master

发布到CocoaPods

注册trunk

1
2
$ pod trunk register leap@example.com 'leap’ #注册,会发带验证链接的邮件到邮箱地址,名称无法修改
$ pod trunk me #可查询注册信息。

命令执行完后邮箱会收到带有验证链接的邮件,打开链接就能完成trunk注册流程。

生成podspec文件

1
$ pod spec create 组件名

会在当前目录下生成.podspec文件,里面有非常多的注释,大部分都是无用的。建议删除内容,直接使用其它成功提交的podspec文件修改。

1
2
3
4
5
6
7
8
9
10
11
Pod::Spec.new do |s|
s.name = "LPSwipeNavigationController"
s.version = "1.0.1"
s.summary = "ARC and GCD Compatible LPSwipeNavigationController Class for iOS"
s.license = "MIT"
s.homepage = "https://github.com/leapCoding/LPSwipeNavigationController"
s.author = { "LeapDev" => "lpdevstore@163.com" }
s.platform = :ios, "7.0"
s.source = { :git => "https://github.com/leapCoding/LPSwipeNavigationController.git", :tag => "#{s.version}" }
s.source_files = 'LPSwipeNavigationController.h', 'LPSwipeNavigationController.m'
end

接下来讲解一下每行代码的含义
s.name 名称
pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错
s.version 版本号
s.ios.deployment_target:支持的pod最低版本
s.summary: 简介
s.homepage:项目主页地址
s.license:许可证
s.author:作者
s.social_media_url:社交网址,这里我写的微博默认是Twitter,如果你写Twitter的话,你的podspec发布成功后会@你
s.source:项目的地址
s.source_files:需要包含的源文件
s.resources: 资源文件
s.requires_arc: 是否支持ARC
s.dependency:依赖库,不能依赖未发布的库
s.license说明
s.license= { :type => “MIT”, :file => “LICENSE” }
这里建议大家这样写,如果写别的会报警告,导致后面一直提交失败,这里军哥已经跳了很多坑
source_files说明
写法及含义建议大家写第一种或者第二种

1
2
3
4
5
"LPSwipeNavigationController/*
""LPSwipeNavigationController/LPSwipeNavigationController/*.{h,m}"
"LPSwipeNavigationController/**/*.h"

“” 表示匹配所有文件
“.{h,m}” 表示匹配所有以.h和.m结尾的文件
“**” 表示匹配所有子目录

验证.podspec文件

1
2
3
// --verbose 如果验证失败会报错误信息
pod spec lint LPSwipeNavigationController.podspec --verbose

打tag

1
2
$ git tag 1.0.0 #给源代码打版本标签,与podspec文件中version一致即可
$ git push --tag

更新GitHub仓库

提交修改到GitHub

发布到CocoaPods

1
$ pod trunk push LPSwipeNavigationController.podspec

发布成功后最后验证一下

1
$ pod search LPSwipeNavigationController

到此已全部完成