CocoaPods 的坑及在实际项目中的建议

   如今在OS X或iOS下开发应用CocoaPods基本上是一款不可缺少的第三方库管理工具,通过CocoaPods工具我们可以为项目添加被其所支持的Pods的依赖库,并且可以轻松管理其版本。但是在管理或者说维护的过程中也是存在一些的问题的。
   比如说公司的一个iOS项目用到了键盘管理的第三方库IQKeyboardManager,iOS 11面世后,测试的同学反映键盘无法收起,小组的一个同学接了这个bug。但是到了第二天这位同学把bug抛给了我,说让我修改IQKeyboardManager库中代码,在其某个类中的ToolBar上加一个“完成”按钮(iOS 10及以下版本是有的,点击“完成”可收起键盘,在iOS 11消失了)。说要帮忙修改第三方库,大家都知道,项目中的第三方库是不轻易在其源代码中“动刀”的,否则交接、时间问题或者后续的迭代都可能出现问题。按说第三方库有bug,首要的是先看第三方库否有新版本,难道说作者还没适配iOS 11 🤔。带着疑惑我反问这位同学为什么,果不其然,他说当前项目中这个库version:4.0.13已是最新版本了,作者并没有适配iOS 11。可是我这个人有个毛病,在开发中并不轻信于人,实践是检验真理的唯一标准😂,动手!打开终端

   额...还真是version:4.0.13。不过没关系,我还要在GitHub看一下!一查pod v5.0.6!!!为什么要在GitHub重新查看?

原因:Cocoapods 在安装时会将第三方库的版本索引下载到本地~/.cocoapods/repos/master/Specs目录下。我们在本地搜索的时候搜到只是 cocoapods 安装时下载到本地的索引,搜索不到最新版本,是因为 Cocoapods 镜像索引库更新了,而本地的索引库却没更新!前往 ~/.cocoapods/repos/master 目录下查看 CocoaPods-version.yml 文件,然后查看github的Cocoapods版本描述,找到“last”字段对比两者的值是否一致。

解决办法:
方法一(首选方案):
更新 Cocoapods 本地索引库
pod repo update
方法二: (第一种方案还是不行)
pod cache clean --all
rm -rf ~/Library/Caches/CocoaPods
pod repo update

   更新完毕再次搜索,完美解决!


   在此说一下,其实有很多人在使用CocoaPods安装第三方库时喜欢用
pod 'IQKeyboardManager'
而我则更倾向于
'IQKeyboardManager', '~> 5.0.6'
两者的区别在于前者安装的是库的最新版本(话虽如此,但实践经验告诉我们不一定是最新版本😝),后者则是安装库的指定版本。不仅如此,后者指定版本的好处还在于版本控制清晰,一目了然,和可维护性。前者版本控制不是那么透明,只知道是最新版本(也许不是,有可能是CocoaPods索引库版本和GitHub的Cocoapods版本问题,也有可能是未安装最新版本原因),版本号不清;另一方面,若是更新了第三方库,新版本的库API发生了很大变化或功能做了改变,再要退回之前的版本,免不了要折腾一番,因此这些因素都加重了后期的可维护性。综合以上原因,所以使用带版本号的方法最合理。
   最后特别要注意的是CocoaPods不可能每次使用的时候都更新本地索引库(更新的真的很慢!!!),所以在使用CocoaPods更新或者安装第三方库的时候要先在GitHub上先查看一下第三方库最新版本是否和终端search出来的一致。若一致可直接修改项目Podfile文件第三方库版本号,然后再安装;若不一致要先更新 Cocoapods 本地索引库后再修改项目Podfile文件第三方库版本号,然后再安装。

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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,016评论 4 62
  • 2017-12-10 周日 晴(29) 忙碌充实的一天结束了。上午带晓悦霖宝出去了。遇到红灯停车时,霖...
    灯下拾豆阅读 161评论 0 0
  • 从拔牙那天开始,由于疼痛难以忍受,情绪也极端烦躁。没有好的心情,每天做饭的味道可想而知,只是熟了而已,我自己张不开...
    锦墨hhy阅读 292评论 0 0
  • 最近的状态不太好,主要是因为《嘿,老头》这部电视剧,每天晚上零点等着更新,看过之后就到了2点左右了,紧接着就是白天...
    tuionf阅读 609评论 0 3
  • 不知从什么时候开始,小姑娘变成了一个不再口无遮拦,不再将自己所有的情绪都倾诉给他人的人。甚至有的时候会牺牲自己的利...
    Aviva郭阿静1阅读 175评论 0 1