ios项目-利用Pod进行组件化开发


最近参加GMTC全球移动技术大会听了滴滴iOS技术负责人李贤辉关于滴滴iOS客户端的架构演变之路很受启发,随着公司不断的壮大,无论是业务代码(如登录,注册,购买)还是功能代码(如网路层,数据库层,socket层)都在不断增加,所有代码都放到一个工程中,每次编译势必花费更多时间,而且如果公司有多个产品线,代码的复用率不高。如果把基础组件抽象成单个工程,直接编译成静态库,利用cocoapods管理,在主项目里引用资源文件,从而减少了编译的时间,并且提高代码的复用率。


整体思路:

1.创建一个私有spec repo 管理所有私有spec文件;
2.创建Pod所需要的项目工程文件,并且有可访问的项目版本控制地址;
3.创建Pod所对应的podspec文件;
4.验证podspec文件是否可用;
5.向私有的spec repo里添加podspec文件;
6.新建个项目测试自己的私有库;
7.更新podspec,建不同的版本;


1.创建一个私有spec repo

如果想利用pod安装私有库,那么就得创建和cocoapods官方一样的结构,我们想来看看cocoapods官方的结构,cocoapods所有公共库文件都存放在CocoaPods spec远端文件地址,如果在电脑上安装了cocoapods它会从这个地址clone一份到本地,每次pod update 都会更新这个本地仓库,首先先创建一个私有的库 ,由于github的私有仓库是收费的,这里用coding码市创建私有仓库,如果和其他人协同开发,只要把该仓库的权限添加给他就行。创建完远端的spec repo
在终端执行
pod repo add doctorpluse1Specs https://coding.net/wtlucky/doctorpluse1Specs.git
然后执行
open ~/.cocoapods/repos
会开看到在repos中创建了一个私有的仓库,master是cocoapods官方的

屏幕快照 2016-07-06 18.24.31.png

2.创建Pod的所需要的项目工程文件,并且有可访问的项目版本控制地址

(1).在coding码市在创建个仓库
一个仓库存放spec 文件 一个存源代码


屏幕快照 2016-07-06 18.33.30.png

记得添加LICENSE文件
(2).利用SourceTree clone到本地

屏幕快照 2016-07-06 18.36.57.png

(3).xcode command+shift+n 创建一个静态库项目

屏幕快照 2016-07-06 18.31.27.png

(4).把项目添加到SourceTree本地项目里

屏幕快照 2016-07-06 18.41.16.png

push 到 coding码市
mark一下 这个地址就是你的源代码存放的地址可以是git svn 或者zip

3.创建Pod所对应的podspec文件

先cd 到本地的项目目录
执行
pod spec create doctorplus1Test
创建
配置该文件

屏幕快照 2016-07-07 10.25.59.png
4.验证podspec文件是否可用

首先执行
pod lib lint

屏幕快照 2016-07-07 10.28.01.png

如果出现上图,说明lib验证成功
然后执行
pod spec lint

屏幕快照 2016-07-07 10.29.48.png

如果出现上图,说明spec验证成功

5.向私有的spec repo里添加podspec文件

在终端中 cd 到 podspec目录下执行
pod repo push doctorplus1Specs doctorplus1Test.podspec

屏幕快照 2016-07-07 10.33.29.png

出现上图结果,在remote上可以看到一次提交

6.新建个项目测试自己的私有库

终端执行
pod search doctorplus1Test

屏幕快照 2016-07-07 10.35.55.png

如果搜到了说明成功了,如果搜不到,尝试执行
rm ~/Library/Caches/CocoaPods/search_index.json
pod setup
pod repo update
更新一下本地的repo
xcode新建项目 在podfile中添加
pod 'doctorplus1Test', '~> 0.0.2'
如果提示 'unable to find a specification for'

屏幕快照 2016-07-07 10.42.09.png

这是个坑,能搜到,安装不到项目里,这不科学呀,搜了好多文章终于找到了,需要在podfile中添加

source'https://git.coding.net/doctorplus1/doctorplus1Specs.git'
source'https://github.com/CocoaPods/Specs.git'

_上面地址是自己的私有spec仓库
下面地址是cocoapods公共spec仓库
两者缺一不可
_
添加完后,执行pod update

7.更新podspec,建不同的版本

如果某个基础组件有bug,或者优化了某个算法,需要更新code,更新版本
方法如下:
1.修改spec文件中的s.version 号;
2.修改更新code,提交code在Sourcetree打新的tag;
3.重复执行第四和第五步;
4.pod search doctorplus1Test 验证一下结果;

屏幕快照 2016-07-07 11.03.51.png

参考文章:
使用Cocoapods创建私有podspec
CocoaPods私有库配置笔记
Cocoapods系列教程(三)——私有库管理和模块化管理 - Pluto Y的...

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

推荐阅读更多精彩内容