私有Pod制作和后续升级

开篇:

入戏:

有一天,亘亘深夜做了个梦,梦到自己成为了一个牛逼的巨佬,坐拥上千万的开发者迷弟迷妹粉丝,开源框架上千款……
一次粉丝见面会结束,观众散去,亘亘看见会议的角落坐着一位年纪尚小的开发者独自发闷,走近聊了几句,小弟弟告诉他:原来是一个刚入行的开发者,对私有Pod的房集成不是太明白,因为这个问题,还丢失了一个很好的就业机会。于是,亘亘告诉他,等他回去找时间出一篇关于私有Pod集成的博客,帮助这类人搞懂这里面的弯弯绕绕。于是,这篇博客诞生了!

好的故事未完,美好即将待续……

私有pod,我们都不陌生,那么我们如果想让别的开发者肆无忌惮的几个命令行就嵌入我们的自己做的私有库使用,这也是件自豪而牛逼的事,那么,如何制作私有Pod呢?
其实制作私有pod,把主要的几个步骤掌握住,就很简单了,下面我简要讲解下私有pod的制作步骤以及后续升级的步骤

目录

  • 第一步:创建私有库工程
  • 第二步:私有库本地的配置和集成
  • 第三步:Specs 文件仓库管理
  • 第四步:关于后续私有库升级

第一步:创建私有库工程

cd到你想放项目的本地目录下,比如桌面上新建一个叫“podKit”的文件夹,那么,我们依次执行以下命令:

  • cd desktop
  • pod lib create podKit

成功后会出现以下代码,按需选择填写即可

# 选择编程语言
What language do you want to use?? [ Swift / ObjC ]
> Objc  

# 在你的项目中是否创建一个demo工程,为了方便测试,我选择了Yes
Would you like to include a demo application with your library? [ Yes / No ]
 > Yes  

# 测试框架选择哪一个
Which testing frameworks will you use? [ Specta / Kiwi / None ]
 > None

#要不要做视图测试
Would you like to do view based testing? [ Yes / No ]
 > Yes

# 类前缀名
What is your class prefix?
 > SH
1-1.png

Pod私有库创建成功后会自动打开项目~

第二步:私有库本地的配置和集成

  1. 找到刚才创建的podKit文件夹,点击入去,里面的目录如下:
1-2.png
  1. 把你想要做成私有库的文件,整理好,目录结构都调整好,一股脑拷贝到podKit这个目录下面,这个文件夹下面默认有个Classes和Assets文件夹,我个人的习惯,都会把它们删掉,直接把我将要做成私有库的文件拷贝进来,类似这样:


    1-3.png
  2. 接下来,打开项目,打开那个Example文件下下面的xxx.xcworkspace,这个不用我多说了吧,这个时候你展开的项目,展开Pods -- 啥也没有,哈哈哈,别急,往下继续看:

  3. 编辑podspec文件
    编辑这个文件之前,需要去github账号上,新建一个远程仓库,把地址拷过来洗干净备用,新建远程仓库,我在这不做说明了

它的位置就在根目录下,就是那个podKit. podspec,在xcode里面打开直接编辑它就行,上个图吧,这个玩意其实也简单:

1-5.png

这个玩意编辑的时候一定要小心,最容易出错的一个环节,验证spec文件的时候如果这个文件有问题会报错

  1. cd到我们的Example目录下,执行:pod update --no-repo-update 命令行
    这个时候再看下刚才的目录,上图我已经标注好了,ClassA 就添加进来了,因为ClassB文件夹为空,所以没有添加进来

注意:你要不听我的话,不cd到我说的目录,那你就等着看红吧(因为在那个目录下才有PodFile文件呀),还有别问为啥update后面为啥跟那些小可爱,因为你这个时候还没有远程仓库

  1. 然后这时候在你本地测试一下私有库是否可以使用

在你的工程下面的Example下,有个Example for podKit 文件夹,展开,便是我们熟悉的正常xcode项目目录了,在那做个#import导入试试就行,不报错,编译能通过,就成功了

  1. 验证spec文件

cd到项目根目录下执行: pod lib lint --allow-warnings


1-6.png
  • 执行了3遍,第三次成功了,截图我有说明,有两次是反面教材,哈哈

这一步,切记:命令行的执行目录是不同的:
pod lib lint --allow-warnings是在项目根目录下
pod update --no-repo-update 是在Example目录下

  1. 项目发布,git提交操作
    依次执行以下命令,一定要按照顺序执行:
  • git git remote add origin https://github.com/shLuckySeven/podKit.git
  • git status
  • git add .
  • git status
  • git commit -m "提交信息"
  • git pull origin master --allow-unrelated-histories
  • 这一步,注意:上面执行完pull origin master后,由于你的仓库是新建的,建的时候我们可能创建了README和ignore文件,所以pull的时候,和本地的文件会有冲突,所以,这个时候我们继续执行:
  • git status 查看冲突
  • git add .
  • git commit -m "解决冲突
  • git push origin master
    到这,应该就成功了,如果还是报错,那你就自行百度吧,或者对着我的步骤再仔细核对一遍

8-1. 打tag

  • git tag 0.0.1
  • git push origin 0.0.1

到这,我们的私有库代码部分就结束了,登录你的github查看远程仓库,应该就有你的代码了,下面,我们开始整 spec文件管理仓库

第三步:Specs 文件仓库管理

specs 的作用:

Specs,叫做私有库文件管理仓库,也就是说我们后续对私有库升级、版本的操作,全靠这个东西,它的制作流程和之前制作代码仓库的流程一样,假如我们创建的Specs叫 "SHspec"

  1. 添加Specs到本地

执行命令行:pod repo add SHSpec https://github.com/shLuckySeven/SHSpec.git
这里给大家说个小窍门:快捷键Command+Shift+.查看隐藏文件

1-7.png

如图:我们的~/.cocoapods/repos/SHSpec出现了,它里面就替我们管理了我们的私有pod的spec版本文件

  1. 将私有库的.podspec文件添加到本地的Specs中,并同步到远端仓库

cd到我们的私有库项目根目录下,一定要cd到这
执行: pod repo push SHSpec podKit.podspec

1-8.png

再去刚才说的~/.cocoapods/repos/SHSpec目录下面,看看:


1-9.png

podKit出现了,而且,版本号是0.0.1,登录github远端查看

1-10.png

到这,其实可以说已经非常nice了,但是我们还要用我们的私有pod库,命令行:

pod search podKit

此处,应该有掌声,我觉得!

第四步:关于后续私有库升级

1.修改代码,需改podspec文件里面的版本号
2.pod update --no-repo-update
3.代码编译验证通过之后,将代码push到远端
4.打新的tag
git tag -a '0.0.1' -m '描述' //添加tag
git tag //查看tag
5.podspec文件验证:pod lib lint --allow-warnings
6.将podspec文件push到Specs仓库中:
pod repo push SHSpec podKit.podspec

又到了深夜说再见的时候,观众朋友们,下次再见!

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

推荐阅读更多精彩内容

  • 这几天业余围棋界一桩作弊案闹得沸沸扬扬。起因是一名不知名棋手在比赛中战胜了业余天王胡煜清。事后发现比赛中该棋手将手...
    512song阅读 187评论 0 0
  • 我是在2018年的8月末尾进入东南大学学习的,我印象里应该是8月25或者26的样子,但总是记得不大清楚了。然而我却...
    无比幸福的陆逊阅读 281评论 0 2
  • 〇、前言 18年底,自己写了一篇成就事件,发现年底才开始回顾这一年会遗忘好多事情,今年希望可以从年初就开始一点一滴...
    柠檬佳呀阅读 1,299评论 3 11