理解CocoaPods的Pod Lib Create

前言

RVM是一个命令行工具,它允许您轻松地安装、管理和处理多个ruby环境,从解释器到gem集。

这是RubyChina镜像站点http://gems.ruby-china.org/(淘宝gems站点的镜像已重定向到这里)所描述的方法。

Gem简介

Rubyems:简称gems是一个用于对rails组建近些年个打包的ruby打包系统,
它提供了一个分发ruby程序喝库的标准格式,
还提供了一个管理程序包的工具。
Rubyems的功能类似于linux下的apt-get,
是个包管理器,可以从远程下载所需的包。 
什么是gem:你可以这样理解,
gem是一系列文件和包的总称,
是一些rails项目依赖的软件或者环境,
或者是依赖的关系库,当你的项目中缺少的时候,
你可以用gem install 来进行安装,
这种安装是通过RubyGems这个包管理工具来安装的,
当然你也可以通过bundleer来安装。说到这两种安装方法,
区别在于: 
gem install xxx.gem是通过Rubyems工具来进行安装的,
将所需要的gem都安装到/usr/local/ruby/lib/ruby/gems/1.8(你的ruby的安装目录)。
这其中包括了Cache、doc、gems、specifications 4个目录,cache下放置下载的原生gem包,gems下则放置的是解压过的gem包。当安装过程中遇到问题时,可以进入这些目录,把有问题的gem删掉,重新 gem install 即可 
bundle install 默认情况下也是将所需要的gem安装到这个位置,但是在一些情况,可能你当前的用户权限对那个目录没有可写权限,这个时候bundler将会在一个临时目录里来升级所需的一切gem,然后管你要sudo的密码,这样的话,才有权限copy这些gems到系统的目录去。其实你应该永远也不要用sudo bundle install,因为在bundle install的时候,有些步骤是必须要用你现在的用户角色来进行的。 
Rails 3中如果需要 require 某个 gem 必须通过 Gemfile 来管理。 
Gemfile.lock 则用来记录本机目前所有依赖的 RubyGems 和其版本,所以强烈建议将该文件放入版本控制器,从而保证大家基于同一环境下工作。 
bundle install:安装你在项目的Gemfile文件中指定的项目依赖库 
描述:用来安装你在Gemfile中制定的,该项目所要用到的依赖的gem。 
如果你第一次运行bundle install,
并且这个Gemfile.lock不存在,
bundler将会在远程的源上去抓取这些依赖的库,
去解析依赖关系,并且安装所有你在Gemfile中指定的gem。 
如果Gemfile.lock文件已经存在了,
并且你还没有更改你的Gemfile文件,
bundler将会所有的远程资源,
但是是根据Gemfile.lock中制定的gem来解析依赖关系。 
如果Gemfile.lock文件已经存在了,
并且你已经更改了Gemfile文件,
bundler将会用Gemfile.lock中,
你没有更改之前的gem来解析依赖关系,
并且将会利用你更改过的gem来重新解析这些依赖。 
如果gems有新版本,Gemfile.lock如何同步更新:
 bundle update,
这样bundle会去检查 http://rubygems.org/ 上 gem的最新版本,如果本地旧的话,会去更新到最近版本。
然后同步更新Gemfile.lock 

在Linux下不要使用 sudo bundle install/update,
这样会在.bundle目录下查找bundle install path 的配置,
找到后安装到该目录,而非系统指定的目录,不方便管理。
这就是说,通过sudo bundle install 安装的gem会在你当前的家目录的.bundle下



在我们想要发布自己的pod文件时,需要通过```Pod Lib Create```指令去创建`pod`,然后添加文件,测试后发布.
这次我们来探究下```Pod Lib Create```到底是如何实现的,该指令帮我们做了什么呢?

###pod lib create
通过`pod lib create`创建一个`pod`,分析创建流程
当执行`pod lib create ProjectName`时,其实是下载了一个`pod`模板,然后在内部通过更改`.podspec`文件的配置定制化自己的`pod`,
`pod lib create ProjectName`其实使用了默认参数,补全的话`pod lib create ProjectName --template-url`=https://github.com/CocoaPods/pod-template.git,
执行:

分析

Cloning `https://github.com/CocoaPods/pod-template.git into ProjectName.`
创建一个和指定的项目名相同的文件夹,然后将`pod-template`克隆下拉

Configuring TemplateDemo template
对当前项目进行配置
pod-template是cocoapods官方提供的一个模板,做了什么呢









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

推荐阅读更多精彩内容