如何制作你的Cocoapod库

说明

这里说的完全是从实用的角度出发的,首先是能用,但是不做原因的追究。这个会在以后的文章中研究学习,这个非常符合我本人的学习路线——先看效果再探究其原因。关于自制Cocoapod库网上有人已经写了很多文章,我并不是在效仿,我只是在写我自己的心得体会而已。以下说的全都是顺序的步骤。

github工程

很简单,你是你的源代码所在的工程。这还用说吗?还是说一说吧,免得被忽略了,我知道你潜意识里是知道的,所以这里提的并不多。

创建XXX.podspec文件

这个文件的专业名词叫啥玩意,我没去研究,但是从使用的角度来讲,它就是个配置文件。如何创建呢?很简单,先cd到你的github目录下,然后执行pod spec create [项目名字]命令,它就会在当前目录下生成一个[项目名字].podspec文件。

如何配置XXX.podspec文件

这里面其实没啥玩意,大部分都是注释,或者可以说成是备选项,在这里只说说关键的部分。下面我准备结合图片来说明。

  1. s.name:就是这个库的名字,就是下图这个。


  2. s.version:就是这个库的版本号,也就是下面这个。


  3. s.summary:这个用来说明该库的介绍,是下面这个。


  4. s.description:这个我还不清楚是干啥的,不过这个是必填的。你需要在<<-DESC,DESC之间填入描述性文字。
  5. s.homepage:这个就是你的项目的github地址。
  6. s.license:许可证,这个是必须的,一般来说正规点的都是用一个文件型的许可证,好像还是需要申请的。但是如果你想自己申请,其实可以不用费劲,直接把许可证赋值为MIT,于是变成了s.license = "MIT"。
  7. s.author:作者,没错了,就是你啦,那么如何证明你是你呢?你需要提供你的昵称和邮箱。举个例子{ "非主流程序员" => "13207533103@163.com" },哈哈这个其实就是我啦。
  8. s.platform:就是对于iOS系统版本的兼容性,这里应该填的是兼容的最低iOS版本号,我填的值是s.platform = :ios, "10.0"。
  9. s.source:源代码所在地址,我填的值是{ :git => "https://github.com/AbnormalProgrammer/BackForward.git", :tag => "#{s.version}" }。由于s.version是前面设定好的,所以在这里直接使用就好了。
  10. s.source_files:这个是你写的代码的实质所在,一般来说你是要在github目录中建立一个单独的文件夹,并在里面放入你的源代码文件。这个直接使用它自带的默认值就行,即"Classes", "Classes/*/.{h,m}"。这个好像是说,这个文件夹叫做Classes,后面的应该该文件夹中.h和.m文件,里面的都是通配符。

验证XXX.podspec文件的正确性

输入pod lib lint StromanBackForward.podspec --allow-warnings命令即可。如果出现了错误自然就通不过嘛,但是如果是警告那种,并且还是针对于语言本身没有错,但是pod不认账的那种警告,如果遇到这种情况通不过,那就有点太冤了,于是要添加--allow-warnings免得麻烦。

提交代码

你需要把github下面的源代码准备好,主要有供别人学习你的这个玩意如何使用的demo,源代码所在文件夹以及说明性的readme.md即可。在提交以后,你需要在本次提交上面打tag,然后需要把这个tag推送到远程对应分支上面,把tag推送到远端这个事情一定要做,不然pod会认为你是在新分支上面发布。另外,这个tag最好跟版本号是一样的,这样github上面tag就代表了你的库的版本号。

在pod中添加你的库

pod其实也是一个库,pod一开始是没有你的库的,所以你需要在pod库中把你的库添加进去。使用的命令是pod repo add StromanBackForward https://github.com/AbnormalProgrammer/BackForward master,不过在这里我用的是我自己的仓库。这个也是只有在新建立pod库的时候才需要做。

把你的库推送到pod中去

这个没啥好解释的,这就跟你创建了一个github仓库,然后再把自己的代码推送到远程分支上一样。所用的命令就是pod repo push StromanBackForward StromanBackForward.podspec --allow-warnings,这里面有需要--allow-warnings,否则会因为警告导致失败。
这一步成功以后,你就可以通过pod search命令找到你的库了。但是此时你并不能像正常的库一样去pod install或者pod update。
这一步需要访问你的私账仓库,而现在一般使用token作为密码,假如你忘了你已经在使用token作为密码,而仍然尝试使用原来的密码的话,就会出现账户名密码不匹配的错误。值得注意的是这里输入的应该是账户名,而不是账号。

拥有trunk账号。

在这一步Cocoapods需要访问你的私人仓库,现在都是用token作为密码的,有的时候可能导致访问失败,原因是账户名和密码不匹配,可能是因为你忘记了已经使用了token作为密码导致的。

这个trunk具体应该怎么翻译?我也不知道,不过从实用角度叫它像是一个上传代码接口。pod的用法是要使用库随便用,只要你知道方法,但是你要上传自己的库就必须要有一个账户。首先是要sudo gem install cocoapods一下,如果你遇到/usr/bin写权限失败的话就换成sudo gem install -n /usr/local/bin cocoapods命令,如果是由于网络原因导致的失败,那你还是翻墙吧。如果你没有trunk账户,则需要注册一个,实例就是pod trunk register [邮箱] [昵称],然后Cocoapod就会向你注册的邮箱发送一封激活邮件,激活以后就可以使用pod trunk me命令,开启你注册的这个账户。

通过trunk推送库

可以通过pod trunk push [xxx.podspec的路径] --allow-warnings把库推送到pod repo中去,这里面也要使用--allow-warnings来避免因为警告导致失败。这一步成功以后,恭喜你的你的库就可以像AFNetWorking之类的库一样通过pod安装了。

为什么在别的电脑上搜不到自己的库?

因为pod在本地维持了一个库的缓存,你在本地提交的库就已经被缓存到本地了。但是你在别的电脑去搜索的话, 人家的缓存里面是没有你的库的,所以会出现Unable to find a pod with name, author, summary, or description matching XXX的提示。所以你只需要更新一下这台电脑上的pod缓存即可,方法是先rm -rf ~/Library/Caches/Cocoapods删除本地pod缓存,然后再搜索,pod会自动建立新的缓存,成功以后你就能在这台电脑上搜索到你自己的库了。如果发现你刚刚更新的pod没有被search出来,那就执行pod repo update,然后再次search就可以看到了。

我对Cocoapods仓库的理解

Cocoapods仓库

下一篇:如何更新Cocoapod并用framework制作Cocoapod库

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351