CocoaPods介绍与使用(转)
一.介绍
(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介绍与使用(转)的更多相关文章
- CocoaPods介绍。如何安装Ruby环境,如何下载和安装CocoaPods?
CocoaPods介绍? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其 ...
- Xcode7安装CocoaPods
一.CocoaPods介绍以及优点 CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具.该项目源代码在Github上管理. 通过 CocoaPods,能够非常方便的 ...
- iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决
〇.前言 <p>在iOS开发中 CocoaPods作为库依赖管理工具就是一把利器. 有了 CocoaPods则无需再通过拖 第三方库及第三方库所依赖的 framework静态库到项目中等麻 ...
- iOS CocoaPods一些特别的用法 指定版本、版本介绍、忽略警告
简介 介绍一些CocoaPods一些特别的用法 CocoaPods github地址 CocoaPods 官方地址 1. 指定第三方库版本 1. 固定版本 target 'MyApp' do use_ ...
- CocoaPods 的安装和使用介绍
CocoaPods 的安装和使用介绍 安装 安装方式异常简单 , Mac 下都自带 ruby,使用 ruby 的 gem 命令即可下载安装: 1 2 $ sudo gem install cocoap ...
- CocoaPods的简单介绍及安装和使用
CocoaPods的简单介绍及安装和使用 一.CocoaPods是什么? 当你开发iOS应用时,会常常使用到非常多第三方开源类库.比方JSONKit.AFNetWorking等等. 可能某个类库又 ...
- CocoaPods常用终端命令及Profile文件简单介绍
Pod常用终端命令 pod init 创建pod文件 pod install 开始安装第三方框架,如果网上有更新,会安装最新的 pod install --verbose--no-repo-updat ...
- 项目总结(二)--- CocoaPods的简单介绍与使用
先谈下,我们为什么要使用CocoaPods,它能为我们做什么吧. 所有开发过iOS应用的小伙伴们都知道,在整个项目中,第三方库的引用必不可少(特别感谢那些优秀第三方开源库的作者,给我们提供了多大的便捷 ...
- iOS开发:bitcode介绍和使用cocoapods出现“target overrides the `OTHER_LDFLAGS`……”的解决方案
在开发中,不免需要引入第三方库,但是因为库的问题,会发生很多错误.如: 1.因为一些第三方库不包含bitcode就会报错: 一次使用xcode7.1时,发现编译失败,报错信息: umeng messa ...
随机推荐
- 写一个安全的Java单例
单例模式可能是我们平常工作中最常用的一种设计模式了.单例模式解决的问题也很常见,即如何创建一个唯一的对象.但想安全的创建它其实并不容易,还需要一些思考和对JVM的了解. 1.首先,课本上告诉我,单例这 ...
- Java反射机制集中学习
什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言 ...
- rest-framework框架——视图三部曲
一.mixins类编写视图 1.配置url urlpatterns = [ ... re_path(r'^authors/$', views.AuthorView.as_view(), name=&q ...
- sql server 数据库代码备份及还原代码
--备份 BACKUP DATABASE [库名称] TO DISK='E:\qq\ddd.bak' --备份并覆盖 BACKUP DATABASE [库名称] TO DISK='E:\qq\ddd. ...
- ArcGIS软件操作——地图制图
ArcGIS软件操作系列二(地图制图) 2016年毕业,参加工作,除了平时出差,大部分时间都在使用ArcGIS处理数据.制图,在此,先将一些制图的小心得撰写出来,希望能与各位共同交流. 1 数据准备: ...
- win环境下jdk7与jdk8共存问题
1.jdk安装包 安装步骤略 2.jdk等配置文件修改 在安装JDK1.8时(本机先安装jdk1.7再安装的jdk1.8),会将java.exe.javaw.exe.javaws.exe三个文件cop ...
- Rational ClearCase 系列
Base + UCM 系列参考:http://blog.csdn.net/hhg208/article/details/5749050
- Siebel Tools 开发笔记
1.在Siebel Client上的菜单Help -> View 中可以找到开发所常用的信息 Screen: 此画面所使用的Screen名字在Tools的Object Explorer中的[ ...
- visual studio 调试 不进断点 断点失效 提示当前不会命中该断点等问题解决
1.首先看一下 当前调试模式是否为debug 2. 点击[调试]>[选项和设置] 将[要求源文件与原始文件完全匹配]勾选掉 3.点击调试的最后一个选项 点击[web] 将调试器内部勾选上需要测 ...
- zip4j之加压解压
最近看同事搞个文件打包,搞了大半天,还是有问题!嗨~~ 网上明明有现成的,偏偏要自己写! 下面是基于zip4j实现加压解决的简单工具类 package com.learcher.zip; import ...