CocoaPods的使用

http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control

将Pods加入一个Xcode Project中

在你开始之前

1.检查Specs仓库或者cocoapod.org来确认你想要用的libraries是可用的

2.在你的电脑安装CocoaPods


安装

创建一个Podfile, 并且加入你的依赖

target 'MyApp' do

 pod 'AFNetworking', '~>3.0'

 pod 'FBSDKCoreKit','~>4.9'

end

1. 在你的项目路径后面,运行 $ pod install 

2.打开 App.xcworkspace 并且 编译

用CocoaPods创建一个新的Xcode 项目

想要用CocoaPods创建一个新项目,按照如下步骤:

1.像你平时那样,在Xcode穿件一个新的项目

2.打开终端,并且 cd 你的项目路径

3.创建一个Podfile。这个是通过运行pod init 来得到的。

4.打开你的Podfile。第一行应该指定支持的平台和版本号。

platform:ios, '9.0'

1.为了使用cocoaPods你需要定义Xcode target去链接他们。所以如果你想写一个iOS app, 这个将会是你app的名字。创建一个target块通过写入target '$TARGET_NAME' do 和在最后写一个end.

2.添加一个CocoaPod通过指定 pod '$PODNAME'在你的target block中的一行。

target 'MyApp' do 

 pod 'ObjectiveSugar' 

end

1.保存你的Podfile

2.运行 pod install 

3.打开你创建的MyApp.xcworkspace.这个文件就是以后你每天都要打开的了。

集成一个已经存在的workspace

集成一个已经存在workspace的CocoaPod需要在你的Podfile额外的一行代码。仅仅指定.xcworkspace的文件名字 在你target block块之外就可以:

workspace 'Myworkspace'

什么时候用pod install VC pod update ?

许多人迷惑于设么时候用pod install 和 pod update.典型的是,他们经常用pod update当需要用pod install的地方。

你可找到一个详细的解释关于什么时候用什么在这里 pod install VS. pod update

原文 http://guides.cocoapods.org/using/pod-install-vs-update.html

应该检查Pods目录在Source Control?

无论在Pods文件夹里检查与否都取决于你自己,因为工作流因项目而异。我们推荐你保持Pods目录在源控制下,顶贴不要告你的.gitignore添加进去。但是最后如下讨论取决于你:

检查Pod目录的优势

1.在克隆repo之后,项目就可以很快的编译和运行,即使该设备并没有安装CocoaPods.这里不需要运行pod install, 网络也不是必要的。

2.Pod artifacts(code/libraries)通常是可用的,即使Pod(e.g GitHub)的源下架。

3.在克隆repo后,Pod artifacts保证与原本就安装的相同。

忽视Pod目录优势

1.soure control repo 将会更下并且占用更少的空间。

2.只要所有的Pods源文件(e.g GitHub)是有效的,CocoaPods通常可以重新创建相同的安装。(技术上来讲这并没有保证的是,运行pod install将会fetch和recreate相同的artifacts当你不再Podfile中提交SHA.特别是在Podfile中用zip文件)

3.当执行source control操作,例如merge不同pod版本的分支,这并没有任何冲突去解决。

无论你是否检查Pods目录,Podfile和Podfile.lock一直都在版本控制下。


什么是Podfile.lock?

这个文件是在你第一次运行pod install之后产生的,追踪每一个已经安装的Pod的版本。举个例子,设想在Podfile中有如下的依赖:

pod 'RestKit'

运行pod install会安装RestKit的当前版本,会生成一个Podfile.lock文件指明准确的安装版本号(e.g RestKit 0.10.3).得益于Podfile.lock, �随后在另外一个机器上对该项目运行pod install,即使一个新的版本存在仍旧会安装RestKit 0.10.3.如果不更新Podfile中的依赖或者调用pod update(这个会生成一个新的Podfile.lock),CocoaPods会一直保持Podfile.lock中的版本。在这种方式下,CocoaPods避免了不希望的依赖改变带来的麻烦。

这有一个来自Google的video来展示如何运行的。 "CocoaPods and Lockfiles (Route 85)"

幕后之后发生了什么

在Xcode, 与直接从Ruby源引用,它:

1.创建或者更新一个workspace

2.如果需要把你的project添加到workspace.

3.如果需要把CocoaPods静态库project添加到workspace.

4.添加libPods.a :targets=>build phases =>linke with libraries.

5.把CocoaPods 的Xcode 配置加入到你的app项目中

6.依赖于CocoaPods改变你app的目标配置。

7.添加一个构建阶段,从您安装到应用程序包的任何副本中复制资源。即“脚本构建阶段”,所有其他构建阶段如下:

      Shell: /bin/sh

      Script:${SRCROOT}/Pods/PodsResources.sh

注意第三步起如果CocoaPods静态库已经在你的项目跳过,这主要基于Jonah Williams对静态库的研究。

Pods 和 Submodules

CocoaPods和git子模块试图解决非常相似的问题。他们都试图简化在你项目中的第三方代码。Submodules链接到该项目的特定提交上面,而CocoaPods绑定到了开发者开发的版本上去。

切换submodules到CocoaPods

当你决定把所有都切换到CocoaPods上,确定你现在使用的所有库都是可用的。记录当前使用的库的版本号也是一个好主意,所以你可以使用同一个安装CocoaPods。这也是一个好主意这样做增量,依赖依托于依赖,取代大的更改。

1.安装CocoaPods.如果你并没有做的话。

2.创建你的Podfile

3.移除submodule索引

4.在Podfile中添加你已经移除的库的索引

5.运行 pod install 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容