一.介绍 
(1) CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程链接起来,供我们开发使用。  
(2) 使用CocoaPods的目的是让我们能自动化的,集中的,直观的管理第三方开源库。  
(3) CocoaPods是用Ruby实现的,想要使用它首先需要有Ruby的环境。  
(4) CocoaPods是以Ruby gem包的形式被安装。  
(5) CocoaPods的原理是将所有的依赖库都放倒另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移动到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

二.使用 
1.CocoaPods的安装 
需要用到ruby,Mac系统自带ruby,但如果不是最新的系统,最好更新一下。 
ruby的软件源rubygems.org被墙了,所以先换一下源,命令行下依次执行3条命令

$ gem sources –remove https://rubygems.org/
$ gem sources -add htts://gems.ruby-china.com/
$ gem sources -l

然后升级gem

$ sudo gem update -–system

完了就开始安装CocoaPods

$ sudo gem install cocoapodspod setup

出现Setting up CocoaPods master repo,半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。。。 
gitcafe和oschina都是国内的服务器,可以用它们CocoaPods索引库的镜像:

$ pod repo removemaster pod repo add master https://gitcafe.com/akuandev/Specs.git
$ pod repo update

如果想用oschina的镜像也可以把第二条命令 换成 http://git.oschina.net/akuandev/Specs.git 即可

第二条命令执行的时候会比较耗时,这个时候要去把整个specs仓库clone一下,下载到 ~/.cocoapods里; 
cd 到该目录里,用du -sh *命令来查看文件大小,每隔一会看看,最终大小是190多M。

2.CocoaPods的使用

(1) 在终端shell中cd 来到你要管理的项目,运行:pod install 你的工程就多了个xworkspace文件夹,以后用这个打开工程 
(2) 添加第三方库

搜索一个开源库  podsearchAFNetworking在工程目录里建一个Podfile文件 vim Podfile 
内容按这个格式来

platform :ios,’6.0’
pod ‘RegexKitLite’, ‘~> 4.0’
pod ‘ASIHTTPRequest’, ‘~> 1.8.’
pod ‘SDWebImage’, ‘~> 3.7.’
pod ‘FMDB’, ‘~> 2.3’

3.CocoaPods的使用心得

(1) 最近使用CocoaPods来添加第三方类库,无论是执行pod install还是pod update都卡在了Analyzing dependencies不动 原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,命令如下:

 $ pod install –verbose –no-repo-update 
 $ pod update –verbose –no-repo-update 

podinstall 只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。但是 pod update会更新所有的类库,获取最新版本的类库。每次用$ pod update就行。

(2) 安装一个xcode插件管理工具  http://alcatraz.io,执行curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh 完了打开xcode->window->package manger 搜cocoapods安装,方便操作。

(3) 工程在模拟器上编译报错,不支持i386,Cocoapods确实还不支持64位模拟器,解决办法: 
http://stackoverflow.com/questions/19213782/undefined-symbols-for-architecture-arm64 
其实就2条,1.build active architecture only 在debug的时候设置成YES,不要在release的时候用模拟器 2.other linker flags 加一个 $(inherited)

(4) 用到svn,git多人协作的话,Pods/这个文件夹不要上传,…/Pods/Pods.xcodeproj …Pods/Target Support Files/这些每次编译都会改动从而引起合并代码的时候冲突

更多坑可以看wiki,例如  https://github.com/CocoaPods/CocoaPods/issues/2190 
其他坑各位可以补充。。。

CocoaPods介绍与使用(转)的更多相关文章

  1. CocoaPods介绍。如何安装Ruby环境,如何下载和安装CocoaPods?

    CocoaPods介绍? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其 ...

  2. Xcode7安装CocoaPods

    一.CocoaPods介绍以及优点 CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具.该项目源代码在Github上管理. 通过 CocoaPods,能够非常方便的 ...

  3. iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决

    〇.前言 <p>在iOS开发中 CocoaPods作为库依赖管理工具就是一把利器. 有了 CocoaPods则无需再通过拖 第三方库及第三方库所依赖的 framework静态库到项目中等麻 ...

  4. iOS CocoaPods一些特别的用法 指定版本、版本介绍、忽略警告

    简介 介绍一些CocoaPods一些特别的用法 CocoaPods github地址 CocoaPods 官方地址 1. 指定第三方库版本 1. 固定版本 target 'MyApp' do use_ ...

  5. CocoaPods 的安装和使用介绍

    CocoaPods 的安装和使用介绍 安装 安装方式异常简单 , Mac 下都自带 ruby,使用 ruby 的 gem 命令即可下载安装: 1 2 $ sudo gem install cocoap ...

  6. CocoaPods的简单介绍及安装和使用

    CocoaPods的简单介绍及安装和使用   一.CocoaPods是什么? 当你开发iOS应用时,会常常使用到非常多第三方开源类库.比方JSONKit.AFNetWorking等等. 可能某个类库又 ...

  7. CocoaPods常用终端命令及Profile文件简单介绍

    Pod常用终端命令 pod init 创建pod文件 pod install 开始安装第三方框架,如果网上有更新,会安装最新的 pod install --verbose--no-repo-updat ...

  8. 项目总结(二)--- CocoaPods的简单介绍与使用

    先谈下,我们为什么要使用CocoaPods,它能为我们做什么吧. 所有开发过iOS应用的小伙伴们都知道,在整个项目中,第三方库的引用必不可少(特别感谢那些优秀第三方开源库的作者,给我们提供了多大的便捷 ...

  9. iOS开发:bitcode介绍和使用cocoapods出现“target overrides the `OTHER_LDFLAGS`……”的解决方案

    在开发中,不免需要引入第三方库,但是因为库的问题,会发生很多错误.如: 1.因为一些第三方库不包含bitcode就会报错: 一次使用xcode7.1时,发现编译失败,报错信息: umeng messa ...

随机推荐

  1. 文档碎片DocumentFragment

    文档碎片是什么? 参考标准的描述,DocumentFragment是一个轻量级的文档对象,能够提取部分文档的树或创建一个新的文档片段,换句话说有文档缓存的作用. createDocumentFragm ...

  2. C#中三个关键字params,Ref,out

    关于这三个关键字之前可以研究一下原本的一些操作 using System; using System.Collections.Generic; using System.Text; namespace ...

  3. Windows无法启动MySQL服务,错误1067

    问题:mysql服务启动异常 找出原因 检查D:\mysql-5.6.20-winx64\data目录下client-02.err文件的错误信息(以err为后缀名的文件是mysql的日志文件) 修改配 ...

  4. sqlServer游标的使用

    USE [PatPD1]GO/****** Object:  UserDefinedFunction [dbo].[fun_GetConditionInner]    Script Date: 201 ...

  5. Linux 启动SVN服务

    #使用默认端口3690启动svn服务svnserve -d -r /home/svndata # 如果出现#svnserve: Can't bind server socket: Address al ...

  6. oracle学习篇四:多表查询

    -----------------产生笛卡儿积------------------------------------ select * from emp,dept; --不带条件时,记录数为14*4 ...

  7. JavaScript (预热)

    希望把某个元素移除你的视线: 1.display:none;   显示为无 2.visibility:hidden; 隐藏 3.width\height; 4.透明度: 5.left\top; 6.拿 ...

  8. Stage1--Python的特点和安装

    说在前面: Stage1-Stage4简单介绍一下Python语法,Stage5开始用python实现一些实际应用,语法的东西到处可以查看到,学习一门程序语言的最终目的是应用,而不是学习语法,语法本事 ...

  9. yanxin8文章归档

    文章归档 - 2015年四月 (共21篇文章) 26日: 14443协议的CRC_A和CRC_B (0条评论) 25日: 百度钱包-1分钱5元话费 (0条评论) 22日: 驾照考试总结 (0条评论) ...

  10. 【JS 综合】JS综合

    视频教程链接:http://www.xuexi111.com/s/javascript/ 张孝祥:http://www.21edu8.com/pcnet/programming/26685/