2017-10-31更新-------------------------------
给podspec添加第三方库依赖的时候,需要判断是否包含了第三方库文件,否则会报错,podspec校验不通过,如需要添加第三方库依赖为:
s.dependency "HYTool", "~> 0.0.3"
则代码中需要加入 __has_include 的判断
#if __has_include(<HYTool/HYPathTool.h>)
#import <HYTool/HYPathTool.h>
#else
#import "HYPathTool.h"
#endif
这篇文章记录了自己在GitHub上搭建框架podspec过程以及遇到的问题
总的来说可以分为5步骤
一、在GitHub上和电脑本地搭建项目
二、配置.podspec文件
三、上传本地项目文件到GitHub
四、配置tag并验证podspec文件
五、发布框架
具体过程如下:
一、在GitHub上和电脑本地搭建项目
这一步主要就是把GitHub的项目和本地的项目关联起来
1、在GitHub上新建一个项目仓库(只有LICENSE和README.md两个文件)
2、把GitHub项目clone到电脑本地
3、在该文件目录下新建项目或者导入已经存在的项目,并搭建项目文件结构
4、在该项目目录下,即LICENSE或者README.md文件的同一级目录新建一个同名的文件夹,用来存放相关的文件,也是用于后续的pod文件路径
文件目录结构大致如下(不是固定的,可以参考GitHub上开源框架的文件结构,如AFNetworking)
- HYTransitionAnimation
- HYTransitionAnimation (用来放置框架文件,别人pod就是这个文件下的内容)
- HYTransitionAnimationDemo (演示Demo)
- HYTransitionAnimation.podspec (podspec的配置文件)
- LICENSE (证书信息)
- README.md (使用说明)
二、配置.podspec文件
1、创建.podspec文件
命令为:pod spec create 项目名称
如:pod spec create HYTransitionAnimation
2、编辑.podspec文件,文本编辑工具都可以,如Sublime
- version 版本信息,如0.2.1
- summary 摘要,如HYTransitionAnimation
- description 描述,如a collection of transition animation
- homepage 框架主页,一般都是填框架在GitHub的地址,如https://github.com/oceanfive/HYTransitionAnimation
- license 证书类型,如MIT
- platform 平台类型,如ios, "7.0"
- source 来源位置,如https://github.com/oceanfive/HYTransitionAnimation.git
- source_files 源文件位置,如HYTransitionAnimation/**/*.{h,m}
- frameworks 需要使用的框架,如 UIKit
- requires_arc ARC需要,如true
platform
最好指定一下,否则可能会发生一些异常的错误
以上配置内容都创建文件的时候都有,我们做的是根据需要进行修改就好了;
这里需要着重说一下source_files
填写的内容,本人这里花的时间最多,这里写的是相对文件路径,以podspec文件
的作为参考标准;建议按照HYTransitionAnimation/**/*.{h,m}
这种格式填写,意思是添加HYTransitionAnimation文件下包含子目录的所有.h和m文件;
三、上传本地项目文件到GitHub
内容和配置文件都完成之后需要上传到GitHub才行;工具的话可以使用命令行,也可以使用sourcetree
四、配置tag并验证podspec文件
1、设置tag
命令:git tag "版本号"
如:git tag "0.2.1"
注意:tag一般和版本号相同,我试验结果是相同可以验证成功,不同会一直验证失败
2、推送到远端
git push --tags
3、验证podspec文件
命令:pod spec lint 框架名称.podspec --verbose
如:pod spec lint HYTransitionAnimation.podspec --verbose
验证的时候可能会出现以下错误,
[!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a `.swift-version` file to set the version for your Pod. For example to use Swift 2.3, run:
`echo "2.3" > .swift-version`.
解决:在终端执行命令 echo "3.0" > .swift-version
,会生成一个文件(这是一个隐藏文件)
注:错误解决之后需要重新执行步骤三、四,一直到验证成功才行,验证成功后显示内容如下:
HYTransitionAnimation.podspec passed validation.
五、发布框架
1、注册trunk
命令:pod trunk register 邮箱地址 "用户名称" --verbose
如:pod trunk register 123456789@qq.com "one" --verbose
这时候会有一封邮件发送到邮箱地址,需要你去验证才行
2、发布
命令:pod trunk push 框架名称.podspec
如:pod trunk push HYTransitionAnimation.podspec
发布成功时终端显示内容如下:
🎉 Congrats
🚀 HYTransitionAnimation (0.2.0) successfully published
📅 August 30th, 01:25
🌎 https://cocoapods.org/pods/HYTransitionAnimation
👍 Tell your friends!
这时候就可以在其他项目中使用pod导入了
End-----