一.介绍 
(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. git每次提交都输入密码

    打开gitbash执行即可 git config --global credential.helper store 长期储存密码,因为git默认是不储存密码的,不执行这条命令的话每次更新代码,或者提交 ...

  2. python之高阶函数filter

    原文 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返 ...

  3. Flask插件---flask_script与flask_migrate

    import app from flask_script import Manager from flask_migrate import Migrate,MigrateCommand my_app ...

  4. 如何修改Vue打包后文件的接口地址配置

    1.背景 常规的vue项目分为本地环境和生产环境,我们只要对 config 文件夹下的 dev.env.js 和 prod.env.js 做相应的配置即可.但是最近在做的项目中,涉及到私有化部署,就是 ...

  5. jQuery之设置元素内容(移动和复制元素,使用append(),appendTo()方法)

    jQuery之设置元素内容(移动和复制元素,使用append(),appendTo()方法) ---------- 如果想把内容添加到现有内容末尾,可以利用append()命令.append()命令语 ...

  6. Centos6安装oracle10g

    刚刚开始学OCP.第一关,安装,被折腾得稀碎...查询了大量资料,多次失败后终于总结出一些经验,简单整理如下.[2014-12-11 重新整理了一下顺序,修改了脚本!] 需要注意的是:如果想尝试我提供 ...

  7. Android UI 切图命名规范、标注规范及单位描述(转载)

    本文转自:https://blog.csdn.net/klxh2009/article/details/74938009 很多UI设计师做APP切图都会有两套,一套是Android的,一套是IOS的. ...

  8. 应用——dubbo的基本使用

    一.背景 dubbo是个什么? 首先要说的是,网上有很多高大上的回答,可自行百度,这里只说一些非常狭隘的东西: dubbo是一个分布式服务框架,我们一般用它进行远程方法调用.(分布式.远程方法调用下面 ...

  9. 聚合不应出现在 UPDATE 语句的集合列表中

    修改语句: update A set WZCount=ISNULL(WZCount,0)+(select SUM(WZCount) from T_PM_OutStock_SUB where Mater ...

  10. 免费的SSL证书,你值得拥有!Let's Encrypt 试用体验记录

    早上收到 Let’s Encrypt 的邮件,说偶之前申请的已经通过了,于是马上开始试用.Let’s Encrypt 是一个新的数字证书认证机构,它通过自动化的过程消除创建和安装证书的复杂性,为网站提 ...