当前位置: 首页 > news >正文

IOS 开发之 CocoaPods讲解


看看你的项目吧,肯定会用到很多第三方的开源库,比如ASI,SBJson,MBProgressHUD等等.

比如下面这款APP

用到的库就包含如下这样多

随着你的工程越来越大,你引入的第三方的开源库可能会越来越多.这些依赖的开源库维护管理越久越来越困难.于是CocoaPods出现了,它可以帮助管理Xcode项目的依赖关系。(说到这做过java的同学应该想到了maven了吧).
你可以定义一个非常简单的文本来管理配置这些依赖 .


因为CocoaPods是基于Ruby的 介于天朝的特殊国情,你如果直接gem install 安装的话 肯定会遇到问题的所以首先你需要吧你的源换下. 换成什么呢?还是感谢下阿里吧.阿里给我们搭建了一个RubyGems 镜像.

由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。所以你会与遇到 gem install rack 或 bundle install 的时候半天没有响应,具体可以用 gem install rails -V 来查看执行过程。
这是一个完整 rubygems.org 镜像,你可以用此代替官方版本,同步频率目前为15分钟一次以保证尽量与官方服务同步。

$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l
*** CURRENT SOURCES ***

http://ruby.taobao.org
# 请确保只有 ruby.taobao.org
$ [sudo] gem install cocoapods
$ pod setup    

首先在你的工程下(我创建的是CocoaPodsTest)创建一个空的Podfile文件,这个文件就是用来配置依赖的

$ vi Podfile
$ wq // 也可用 touch Podfile 创建文件
$ pod install

如果成功后您会看到如下信息

并且在你的工程下如多出如下文件

比如我要引入SBJson 为了确认CocoaPods能不能导入这个库 我需要执行

$ pod search SBJson

结果返回了如下信息 则证明可以引入

打开Podfile配置文件 加上如下内容保存

platform :ios
pod 'SBJson'

当然你也可以指定特定的版本 例如
pod ‘SBJson’, '~> 3.2'

$ pod update

更新成功后出现如下信息

Analyzing dependencies
Downloading dependencies
Installing SBJson (3.2)
Generating Pods project
Integrating client project 

打开CocoaPodsTest.xcworkspace 此刻会发现已经把我们想要的库下载好了
如图

6:设置Target头文件索引,第一次使用 需要配置下相应的头文件索引,不然他们虽然在一个工作区下 但是不在同一个项目中也无法直接使用 因此您需要
按着下图,进行相应的配置

7:ok 大功告成 以后你只要更执行如下命令 就可以更新你引入的所有第三方库了

$ pod update

更详细的内容可以看下cocoapods的官网哈.
http://docs.cocoapods.org/guides/getting_started.html


W本站文章如果没有特殊说明,均为原创,转载请以链接方式注明本文地址: http://hufeng825.github.com/2013/10/11/ios30/

相关文章:

  • eclipse安装插件checkstyle
  • 制作网站以及发布的流程
  • checkstyle之如何配置
  • c#中datetime类型与SqlServer中datetime格式的区别
  • 在git的Bash下进行复制粘贴
  • 小智慧62
  • SICP 习题 (1.14)解题总结
  • 一个爬电商数据并实现搜索的例子
  • Qt5学习之路(VS下Qt设计师文件的使用)2013-10-13
  • 使用shell关闭占用某一个端口的程序
  • CGlib的动态代理使用示例
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (4)事件处理——(7)简单事件(Simple events)
  • 把编程语言比喻为人体
  • Qt5学习之路(vs2012下创建一个QT应用程序)2013-10-14
  • [译]CSS 居中(Center)方法大合集
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 0x05 Python数据分析,Anaconda八斩刀
  • C学习-枚举(九)
  • Effective Java 笔记(一)
  • Python3爬取英雄联盟英雄皮肤大图
  • react-native 安卓真机环境搭建
  • text-decoration与color属性
  • Vue2.0 实现互斥
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 那些被忽略的 JavaScript 数组方法细节
  • 数据仓库的几种建模方法
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 回归生活:清理微信公众号
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 树莓派用上kodexplorer也能玩成私有网盘
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • ###C语言程序设计-----C语言学习(3)#
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (七)c52学习之旅-中断
  • (四) Graphivz 颜色选择
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)项目管理杂谈-我所期望的新人
  • (转)重识new
  • .Net 8.0 新的变化
  • .net 流——流的类型体系简单介绍
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .Net中wcf服务生成及调用
  • :not(:first-child)和:not(:last-child)的用法
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...