美文网首页
CocoaPods的使用

CocoaPods的使用

作者: 黄易女民工jiang | 来源:发表于2017-04-26 18:22 被阅读0次

    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 

    相关文章

      网友评论

          本文标题:CocoaPods的使用

          本文链接:https://www.haomeiwen.com/subject/oikwzttx.html