个性化阅读
专注于IT技术分析

CocoaPods使用详细步骤解释 – CocoaPods教程

上一章CocoaPods教程请查看:pod install和pod update

向Xcode项目添加pod

在你开始之前

  • 检查Specs repository或cocoapods.org,以确保你想使用的库是可用的。
  • 在你的电脑上安装CocoaPods。

安装

  • 创建一个Podfile,并添加你的依赖:
target 'MyApp' do
  pod 'AFNetworking', '~> 3.0'
  pod 'FBSDKCoreKit', '~> 4.9'
end
  • 在项目目录中运行$ pod install。
  • 打开App.xcworkspace并构建。

使用CocoaPods创建一个新的Xcode项目

要使用CocoaPods创建新项目,请遵循以下简单步骤:

  • 像往常一样在Xcode中创建一个新项目。
  • 打开终端窗口,使用$ cd切换到项目目录。
  • 创建一个Podfile,这可以通过运行$ pod init来实现。
  • 打开你的Podfile,第一行应该指定支持的平台和版本。
platform :ios, '9.0'

若是OS X平台,基本标识为osx,如platform :osx, ‘10.6’。

  • 为了使用CocoaPods,你需要定义Xcode target来链接它们。例如,如果你在写一个iOS应用程序,它会是你的应用程序的名字。通过写target ‘$TARGET_NAME’ do来创建一个目标部分,并在几行之后以end结束。
  • 通过在target块的单行上指定pod ‘$PODNAME’来添加CocoaPod。
target 'MyApp' do
    pod 'JSKit', '~> 2.0'
end
  • 保存Podfile。
  • 运行$ pod install。
  • 打开创建的MyApp.xcworkspace,这应该是你每天用来创建你的应用程序的文件。

与现有工作空间的集成

将cocoapod与现有的工作空间集成需要在你的Podfile中添加一行代码:只需在target块外面指定.xcworkspace文件名,如下所示:

workspace 'MyWorkspace'

什么时候使用pod install和pod update?

许多人对何时使用pod install和何时使用pod update感到困惑。特别是,他们经常使用pod update,而不是使用pod install。

在上一个教程中,你可以找到关于何时使用每个命令以及每个命令的用途的详细说明。

我应该把Pods目录签入源代码控制吗?

是否签入Pods文件夹由你自己决定,因为不同项目的工作流程不同。我们建议你将Pods目录置于源代码控制之下,不要将它添加到你的.gitignore中。但最终决定权在你:

签入Pods目录的好处

  • 在克隆repo之后,项目可以立即构建和运行,甚至不需要在机器上安装CocoaPods。不需要运行pod install,也不需要网络连接。
  • Pod组件(代码/库)总是可用的,即使Pod的来源(例如GitHub)出现故障。
  • 保证Pod组件与克隆repo后的原始安装中的组件相同。

忽略Pods目录的好处

  • 源代码控制repo将更小,占用更少的空间。
  • 只要所有pod的来源(例如GitHub)都是可用的,CocoaPods通常能够重新创建相同的安装。(在技术上,当没有在Podfile中使用commit SHA时,不能保证运行pod安装将获取和重新创建相同的工件。在使用Podfile中的zip文件时尤其如此。)
  • 在执行源代码控制操作(例如合并具有不同Pod版本的分支)时,不会有任何冲突需要处理。

无论你是否签入Pods目录、Podfile,Podfile.lock应该始终保持在版本控制之下。

Podfile.lock是什么?

这个文件是在第一次运行pod安装之后生成的,并跟踪每个安装的pod的版本。例如,想象一下以下在Podfile中指定的依赖项:

pod 'RestKit'

运行pod install将安装RestKit的当前版本,从而生成一个Podfile.lock,表明安装的确切版本(例如RestKit 0.10.3)。因为有Podfile.lock,运行pod install在这个假设的项目上,稍后在不同的机器上安装,即使有更新的版本,仍然会安装RestKit 0.10.3。CocoaPods遵循在Podfile.lock文件中指定的依赖版本,除非在Podfile中更新了依赖项,或者调用了pod update(这会导致生成一个新的Podfile.lock)。通过这种方式,CocoaPods避免了依赖关系的意外变化带来的麻烦。

CocoaPods后台发生了什么事?

在Xcode中,直接引用ruby源代码:

  1. 创建或更新工作空间。
  2. 如果需要,将项目添加到工作空间。
  3. 如果需要,将CocoaPods静态库项目添加到工作空间中。
  4. 添加libPods.a到:target=>build phases构建阶段=>link with libraries。
  5. 将CocoaPods Xcode配置文件添加到应用程序的项目中。
  6. 改变你的应用程序的target配置为基于CocoaPods的。
  7. 添加一个构建阶段,将你安装的任何pod中的资源复制到应用程序包中。即在所有其他构建阶段之后的“script build phase”,包括以下内容:
    • shell:/bin/sh
    • script:${SRCROOT}/Pods/PodsResources.sh

注意,如果项目中已经有CocoaPods静态库,则跳过第3步。

Pods和子模块

CocoaPods和git子模块试图解决非常相似的问题,两者都致力于简化项目中包含第三方代码的过程。子模块链接到该项目的特定提交,而CocoaPod则绑定到版本化的开发人员版本。

从子模块切换到CocoaPods

在决定完全切换到CocoaPods之前,请确保当前使用的库都是可用的。记录当前使用的库的版本也是一个好主意,这样就可以设置cocoapod来使用相同的库。渐进地做这个也是一个好主意,一个依赖一个依赖地去做,而不是一个大的移动。

  1. 安装CocoaPods,如果你还没有安装的话
  2. 创建你的Podfile
  3. 删除子模块引用
  4. 在你的Podfile中添加已删除库的引用
  5. 运行pod install。
赞(0)
未经允许不得转载:srcmini » CocoaPods使用详细步骤解释 – CocoaPods教程

评论 抢沙发

评论前必须登录!