如何发布自己的pods框架(以ZWLabel为例)

要想成为一个高级的iOS开发人员,不仅仅要能掌握很多前沿技术,还要研究一些底层框架,并尝试发布一些属于自己的框架。但是如何在pods上发布自己的框架,可以向AFNetworking、MJRefresh等第三方框架那样,可以通过pods快速使用。步入正题,以自己基于TextKit框架封装的一个图文混排的ZWLable为例。关于TextKit的一些基本知识,可以查看我之前写过的一篇文章:http://www.jianshu.com/p/99978b0e4042
这是ZWLabel小Demo使用的地址链接:https://github.com/ZhengYaWei1992/ZWLabel
前几天写了一个ZWPhtotBrowser照片浏览器的框架,之后会针对这个小框架写篇文章,也通过pods发布一下。
1、首先要知道一点,有警告的文件不能发布框架。测试版Xcode也不能发布框架。
打开xcode8 preperference — location ——command Line Tools 设置如下图

如何发布自己的pods框架(以ZWLabel为例)_第1张图片
屏幕快照 2017-02-11 下午1.09.13.png

2.注册。 目的:使自己当前使用的电脑可以发布框架
pod trunk register [email protected] “zhengyawei”
执行该命令后,打开邮箱,会收到一封邮件,在浏览器中打开收到邮件的链接,此时就注册成功。
3.查询pod注册信息,可以检查发布过那些框架
pod trunk me
4.github账号中创建项目,添加OC忽略文件,许可协议选为MIT License。创建成功后,复制项目地址,用sourceTree克隆到本地。将相关项目添加到克隆的本地目录中,然后提交到github上。
5.生成spec文件
cd 当前工程目录
pod spec create https://github.com/ZhengYaWei1992/ZWLabel ( https://github.com/ZhengYaWei1992/ZWLabel是项目github上的地址)
此时生成一个.podspec文件

如何发布自己的pods框架(以ZWLabel为例)_第2张图片
屏幕快照 2017-02-08 下午11.12.47.png

6.用xcode打开.podspec文件文件,并更该.podspec文件中的内容,改成以下形式

如何发布自己的pods框架(以ZWLabel为例)_第3张图片
屏幕快照 2017-02-08 下午11.48.00.png

更改成功后,推送到github上,然后用sourceTree添加标签,并推送到github。

说明:
a、s.summary要有内容,否则验证不通过。
b、如果报错:[!] 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
c、s.source_files = “ZWLabel ”……. 第一个ZWLabel是github中资料库的名称,ZWlabelDemo/ZWlabelDemo/ZWlabel/*.{h,m}表示项目中相关框架所在的路径。
7.验证spec文件 目的是编译远程项目的相关框架的各个版本
pod spec lint
ZWLabel.podspec passed validation.说明验证通过

8.推送到pod上 (要注意同步推送tag,否则会这一步会报错)
pod trunk push (这个命令可能需要较长时间)该命令会首先验证你本地的podspec文件,之后会上传spec文件到trunk,最后会将你上传的podpec文件转换为需要的json文件。
9.trunk 认领
https://trunk.cocoapods.org/claims/new

如果以上步骤都执行完成了,但是pod search ZWLabel搜索不到,此时可以删除pod本地缓存路径( ~/Library/Caches/CocoaPods/),然后重新搜索pod search ZWLabel 。此时系统需要生成一些文件,才能使用pod,可要等上几分钟(之前经验1-2分钟)。此时就能正常使用了。

你可能感兴趣的:(如何发布自己的pods框架(以ZWLabel为例))