CocoaPods的使用

配置cocoaPods环境

说明:为了举例创建了一cocoaPodsExample项目

  • cd到工程目录下使用终端创建一个名字为podfile的文件
CocoaPods的使用_第1张图片
Snip20170225_2.png
  • 这里举例使用coocapods继承AFN框架,打开终端,执行命令pod search AFNetworking
CocoaPods的使用_第2张图片
Snip20170225_3.png
  • 使用vim编辑器编辑podfile文件
CocoaPods的使用_第3张图片
Snip20170225_4.png
  • 执行命令pod install 安装,结果出现报错
CocoaPods的使用_第4张图片
Snip20170225_5.png

错误大概是因为我们没有指定target,此时,我们使用vim,重新编podfile文件

CocoaPods的使用_第5张图片
Snip20170225_7.png
  • 此时重新执行 pod install ,提示安装成功
CocoaPods的使用_第6张图片
Snip20170225_6.png
  • 这次查看我们的工程目录
CocoaPods的使用_第7张图片
Snip20170225_8.png
  • 以后我们打开项目就直接打开workspace就可以了
CocoaPods的使用_第8张图片
Snip20170225_9.png
  • 引入框架开始使用
CocoaPods的使用_第9张图片
Snip20170225_10.png
  • 接下来就大功告成了!!!!!!

=============================================

彻底删除已经集成cocoaPods项目中cocoaPods

  • 新建完一个项目的目录结构
CocoaPods的使用_第10张图片
屏幕快照 2016-08-17 下午11.55.01.png
  • 下面我们来随意在项目中通过cocoaPods导入一个第三方依赖
    命令:pod install --verbose --no-repo-update
    • 集成完成之后的目录
CocoaPods的使用_第11张图片
Snip20160818_3.png

开始彻底卸载cocoaPods

  1. 删除temp.xcworkspace 、Podfile.lock、Podfile文件
CocoaPods的使用_第12张图片
Snip20160818_5.png
  1. 打开temp.xcodeproj文件,删除项目的libPods-temp.a、Pods-temp.debug.xcconfig、Pods-temp.release.xcconfig的引用
CocoaPods的使用_第13张图片
Snip20160818_6.png

3.打开Build Phases选项, 删除Check Pods Mainfest.lock和Copy Pods Resources:

CocoaPods的使用_第14张图片
44408030_4.png
  1. 完成编译通过,删除成功,此时可以顺便将项目还残余的Pods跟Frameworks两个空文件家删除,这样项目目录又回到新建的一模一样了.

pod file只是补充

Podfile文件详细描述了一个或多个工程中targets的依赖关系。Podfile会默认创建一个隐式的目标链接到工程中用户的第一个target,名称为“default”。

一个Podfile可以非常简单:

pod 'AFNetworking', '~> 1.0'

也可以配置的复杂一点,如下

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '6.0'
inhibit_all_warnings!

xcodeproj 'MyProject'

pod 'ObjectiveSugar', '~> 0.5'

target :test do
  pod 'OCMock', '~> 2.0.1'
end

post_install do |installer|
  installer.pods_project.targets.each do |target|
    puts #{target.name}
  end
end

Dependencies(依赖项)

Podfile描述用于各个用户targe中的依赖项

  • pod 是声明指定依赖的方法
  • podspec 提供了一个简单的API用于创建pod specs
  • target 允许你在工程中限定依赖项只在你指定的targets中生效

pod

指定工程的一个依赖

一个依赖项通过pod名和可选的版本号来声明

当你开始一个项目的时候你可能只需要一个最新版本的依赖,那么你就可以忽略版本号了,这样写:

pod 'SSZipArchive'

以后你可能想指定一个Pod的固定版本的时候,可以写上具体的版本号来指定:

pod 'Objection', '0.9'

对版本号的操作除了指定与不指定,你还可以做其他操作:

  • >0.1 高于0.1的任何版本
  • >=0.1 版本0.1和任何更高版本
  • <0.1 低于0.1的任何版本
  • <=0.1 版本0.1和任何较低的版本
  • 〜>0.1.2 版本 0.1.2的版本到0.2 ,不包括0.2。这个基于你指定的版本号的最后一个部分。这个例子等效于>= 0.1.2并且 <0.2.0,并且始终是你指定范围内的最新版本

Using the files from a local path (使用本地文件)

如果你想用一个自己开发的本地的Pod,你可以用path选项

pod 'AFNetworking', :path => '~/Documents/AFNetworking'

使用这个选项后,Cocoapods会将给定的文件夹认为是Pod的源,并且在工程中直接引用这些文件。这就意味着你编辑的部分可以保留在CocoaPods安装中

注意:Pod的podspec文件也应该被放在这个文件夹当中

target

在target块里面定义依赖项,如果对应的target不想添加依赖可以用:exclusive => true参数

Podfile文件将会创建一个全局的target名叫:default,default将会生成一个libPod.a文件。这个target将会与用户工程中的第一个target绑定起来如果没有指定特殊的link_with属性的话

例子:

定义一个target:

target :ZipApp do
  pod 'SSZipArchive'
end

定义一个独有的target:

target :ZipApp do
  pod 'SSZipArchive'
  target :test, :exclusive => true do
    pod 'JSONKit'
  end
end

Target configuration (目标项配置)

这些设置用来控制cocoa pods生成project

开头platform用来说明项目的工作平台,xcodeproj允许你指定需要链接的工程

platform

指定了静态库应该被编译在哪个平台

Cocoapods提供一个默认的部署目标如果你自己没有指定的话。目前的默认设置是iOS4.3、OS X10.6、tvOS 9.0、watchOS 2.0

如果部署目标要求iOS版本小于4.3,armv6架构将会被添加到ARCHS

例子:
指定平台

platform :ios, 
platform :ios

xcodeproj

指定包含引用pod库的target的Xcode工程会被链接到

如果没有显示的project被指定,那么会默认使用target的父target指定的project作为目标。如果如果没有任何一个target指定目标,那么就会使用和Podefile在同一目录下的project。同样也能够指定是否这些设置在release或者debug模式下生效。为了做到这一点,你必须指定一个名字和:release/:debuge关联起来

例子:
指定用户工程

# Look for target to link with in an Xcode project called
# `MyProject.xcodeproj`.
xcodeproj 'MyProject'

target :test do
  # This Pods library links with a target in another project.
  xcodeproj 'TestProject'
end

inhibit_all_warnings!

屏蔽cocoapods库里面的所有警告

inhibit_all_warnings ! (swift必须包含)

可以用framework的pod替代静态库的

原文地址

你可能感兴趣的:(CocoaPods的使用)