CocoaPods的使用

配置cocoaPods环境

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

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

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

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

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

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

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

开始彻底卸载cocoaPods

  1. 删除temp.xcworkspace 、Podfile.lock、Podfile文件
Snip20160818_5.png
  1. 打开temp.xcodeproj文件,删除项目的libPods-temp.a、Pods-temp.debug.xcconfig、Pods-temp.release.xcconfig的引用
Snip20160818_6.png

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

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替代静态库的

原文地址

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

推荐阅读更多精彩内容