ios 怎么让自己的框架支持cocospods

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 怎么让自己的框架支持cocospods相关的知识,希望对你有一定的参考价值。

参考技术A 创建自己项目的Podspec描述文件 下面我会通过一个名为HUPhotoBrowser的项目来讲解一下整个过程。 项目发布到github后,需要打上tag。之后我们在工程根目录中初始化一个Podspec文件: pod spec create HUPhotoBrowser

从零开始,让你的框架支持CocoaPods



这两天一直琢磨着想让自己的一个支持CocoaPods下载安装,就搜了好多资料,但是搜到的资料大多都是最基本的,并没有解决我遇到的问题,问题如下:


当自己的框架中用到了xib及图片资源的话,怎么解决在CocoaPods下载安装后xib初始化失败及图片资源不显示的问题。


那么我们从第一步开始,一步一步来使自己的框架支持CocoaPods安装(关于如何在自己的电脑上安装CocoaPods的,就请自行搜索,教程很多)。


首先概括一个大概的步骤:


  • 代码上传到Github

  • 创建podspec文件

  • 在Github上创建release版本

  • 注册CocoaPods账号

  • 上传代码到CocoaPods

  • 检验是否上传成功

  • 更新框架版本


重点


  • 解决CocoaPods下载框架中xib初始化crash的问题

  • 解决CocoaPods下载框架中图片无法正常显示的问题


代码上传到Github


代码上传Github的步骤就不说了,相信有Github账号的人几乎都会上传,而且现在代码上传Github也不需要繁琐的终端操作了,使用Github Desktop客户端即可。

Github Desktop


我们还可以观察到,支持CocoaPods的代码下载下来之后,都会有*.podspec、LICENSE和.gitignore(该文件为隐藏文件),那么先说LICENSE和.gitignore文件,这个可以再github上创建工作目录时候便勾选出来,如下图:

从零开始,让你的框架支持CocoaPods

creat repository

从零开始,让你的框架支持CocoaPods

result


但是通过Github Desktop客户端推上去的工作目录是没有的,怎么再去创建这两个文件,笔者暂时没摸索到,我是直接把这两个文件copy了一份放到了自己的工作目录的。


创建podspec文件


这个简单,首先你需要打开终端进入自己的工作目录的根目录,输入以下命令


touch name.podspec


name便是你最终确定上传到CocoaPods上的命名。


编辑命令如下


vi name.podspec


英文输入法下,点击"i"进入编辑模式,编辑完毕之后首先点击"esc",然后快捷键"shift+zz"(双击z键)即可。


我的ZLPhotoBrowser.podspec文件如下,涉及到更多的CocoaPods命令,请自行搜索

从零开始,让你的框架支持CocoaPods

ZLPhotoBrowser.podspec


在Github上创建release版本

从零开始,让你的框架支持CocoaPods

创建release版本


点进去之后步骤很简单,填上版本号,标题和简单的描述即可,需要注意的是版本号需要与你的podspec文件中的s.version 相同。


注册CocoaPods账号


打开终端,在终端中输入如下命令:



然后根据终端显示信息,如果成功的话会提示让你去邮箱里确认进行激活。


输入如下命令可查看个人CocoaPods账号信息


pod trunk me


上传代码到CocoaPods


在上传CocoaPods之前你需要做一件事,便是验证自己的podspec文件格式的有效性,终端命令如下


pod spec lint


如果podspec文件格式不合法,终端内会报出相应的提示。


如果通过,终端显示信息如下


从零开始,让你的框架支持CocoaPods

podspec


那么接下来便是把自己的框架推到CocoaPods了,终端命令如下


long:ZLPhotoBrowser long$ pod trunk push ZLPhotoBrowser.podspec --allow-warnings


当然你这里如果不是在podspec文件目录下,也可以指定podspec文件的绝对路径,这里请注意最后使用了"--allow-warnings",为忽略警告的意思,如果不加该关键字的话,如果在执行"pod spec lint"时候报出了警告,那么这里上传框架代码肯定是不成功的。成功的话,会有如下显示:

push success


检验是否上传成功,终端输入如下命令搜索你的框架吧


pod search ZLPhotoBrowser


如果成功的话,终端显示信息如下:


ZLPhotoBrowser


更新框架版本


框架上传后,避免不了版本的更新,更新版本也简单,上传最新的代码,在github上创建新的release版本(再次提醒注意版本号与podspec文件的s.version保持一致),然后再次执行命令即可:


long:ZLPhotoBrowser long$ pod trunk push ZLPhotoBrowser.podspec --allow-warnings


解决CocoaPods下载框架中xib初始化crash的问题


由于框架中使用到了UITableView及UICollectionView等UI,所以有存在对应的cell的xib文件。


我们通过cocoapods去下载我们的框架,如果存在xib,那么我们平常初始化xib的代码(如下)便不能正常工作了。


[[[NSBundle mainBundle] loadNibNamed:@ "xibName"  owner:self options:nil] lastObject];

以上是关于ios 怎么让自己的框架支持cocospods的主要内容,如果未能解决你的问题,请参考以下文章

ios开发 使用cocospod怎么引入头文件

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

3分钟让你的框架支持cocoapods

从零开始,让你的框架支持CocoaPods

Swift开源框架发布到CocoaPods

怎么才能够让Camera支持热插拔