文档章节

CocoaPods安装及使用

asjoker
 asjoker
发布于 2016/11/18 11:13
字数 800
阅读 41
收藏 0

#CocoaPods

CocoaPods是iOS的类库管理工具

CocoaPods 的原理,是将所有的依赖库都放到另一个名为 Pods 项目中,然后让主项目依赖 Pods 项目,这样,源码管理工作都从主项目移到了 Pods 项目中。

Pods 项目最终会编译成一个名为 libPods.a 的文件,主项目只需要依赖这个 .a 文件即可。 对于资源文件,CocoaPods 提供了一个名为 Pods-resources.sh 的 bash 脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。 CocoaPods 通过一个名为 Pods.xcconfig 的文件来在编译时设置所有的依赖和参数。

在安装CocoaPods之前,首先要在本地安装好Ruby环境。

###Ruby环境搭建

#查看当前ruby版本
ruby -v
#列出已知的ruby版本
rvm list known
#安装ruby 1.9.3
rvm install 1.9.3

###下载和安装CocoaPods

  • 升级 gem sudo gem update --system
  • 用淘宝的Ruby镜像来访问cocoapods
gem sources --remove https://rubygems.org/
// 等有反应之后再敲入以下命令
gem sources -a http://ruby.taobao.org/
// 验证你的Ruby镜像是并且仅是taobao
gem sources -l
  • 在 Terminator(也就是终端)中输入以下命令(注意,本文所有命令都是在终端中输入并运行的)
sudo gem install cocoapods
pod setup

###使用CocoaPods

  • 在项目根目录中,使用 Vim 新建一个名为 Podfile 的文件,Podfile的内容是你想导入的类库
cd 项目根目录

// 使用 Vim 新建一个名为 Podfile 的文件
vim Podfile

// 编辑后保存
wq

//获取类库
pod install



//我的Podfile 的文件内容如下:
platform :ios, '9.0'
inhibit_all_warnings!
 
target 'cocoDemo' do
  pod 'MBProgressHUD', '~> 1.0.0'
end
  • 每次更改了 Podfile 文件,你需要重新执行一次 pod update 命令。
  • 使用 CocoaPods 生成的 .xcworkspace 文件来打开工程,而不是以前的 .xcodeproj 文件。
  • ProjectName-Bridging-Header.h 头文件里写入要导入的 CocoaPods 库 #import <MBProgressHUD/MBProgressHUD.h> ,就可以在 Swift 中使用 MBProgressHUD

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

###Podfile文件格式

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
  • source  'URL' : 指定镜像仓库的源
  • platform : ios,  '6.0'  : 指定所支持系统和最低版本
  • inhibit_all_warnings! :屏蔽所有warning
  • workspace '项目空间名': 指定项目空间名
  • xcodeproj '工程文件名':指定xcodeproj工程文件名

pod 是声明指定依赖的方法

  • pod '库名',: 引入库,什么版本都可以(一般就是最新版本了)
  • pod '库名', '版本' : 引入指定版本的库
  • >   <   >=   <= 运算符可以指定版本的范围
  • ~ >  :  从指定版本到倒数第二位版本号升1为止,比如 '~> 1.2.1'是指  1.2.1 <= 版本 < 1.3.0
  • pod '库名', :podspec => 'podspec文件路径'  :  指定导入库的podspec文件路径
  • pod '库名', :git => '源码git地址'  :  指定导入库的源码git地址
  • pod '库名', :tag => 'tag名'  :  指定导入库的Tag分支

参考 code4app cocoapods

参考 Podfile Syntax Reference

© 著作权归作者所有

共有 人打赏支持
asjoker
粉丝 10
博文 108
码字总数 79411
作品 0
东城
程序员
使用 CocoaPods 管理依赖库

文本首发于Ryan’s Zone 本篇内容将介绍Mac和iOS开发中必备的一个依赖库管理工具CocoaPods。 CocoaPods是什么 在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest、AFN...

孙启超
2014/04/13
0
0
CocoaPods的安装使用和常见问题

原文:http://www.jianshu.com/p/6e5c0f78200a 一、什么是CocoaPods CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出...

lingfeng72
2015/11/09
0
0
使用CocoaPods管理第三方库

DEC 2ND, 2012 前言 每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如 Java: maven,Ivy Ruby: gems Python: pip, easy_install Nodejs: npm 随着iOS开发者的...

泊竹
2013/12/08
0
0
Mac 安装Homebrew 以及brew update

0、前提"安装CocoaPods 因为最近两天我更换了ssd固态硬盘和重装了 macOS Sierra 10.12系统,需要重新安装cocoaPods Xcode8 macOS Sierra 10.12 安装CocoaPods 我在安装过程pod setup遇到问题...

朝雨晚风
2016/12/20
0
0
CocoaPods安装遇到的问题

--------------- 原文地址:传送门 第一步:sudo gem update --system 如果失败则用这条语句 sudo gem install -n /usr/local/bin cocoapods 如果是最新版的会出现Latest version currently ...

qq_28379951
04/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

qduoj~前端~二次开发~打包docker镜像并上传到阿里云容器镜像仓库

上一篇文章https://my.oschina.net/finchxu/blog/1930017记录了怎么在本地修改前端,现在我要把我的修改添加到部署到本地的前端的docker容器中,然后打包这个容器成为一个本地镜像,然后把这...

虚拟世界的懒猫
33分钟前
1
0
UML中 的各种符号含义

Class Notation A class notation consists of three parts: Class Name The name of the class appears in the first partition. Class Attributes Attributes are shown in the second par......

hutaishi
44分钟前
0
0
20180818 上课截图

小丑鱼00
今天
1
0
Springsecurity之SecurityContextHolderStrategy

注:下面分析的版本是spring-security-4.2.x,源码的github地址是: https://github.com/spring-projects/spring-security/tree/4.2.x 先上一张图: 图1 SecurityContextHolderStrategy的三个......

汉斯-冯-拉特
今天
0
0
LNMP架构(Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl)

Nginx负载均衡 网站的访问量越来越大,服务器的服务模式也得进行相应的升级,比如分离出数据库服务器、分离出图片作为单独服务,这些是简单的数据的负载均衡,将压力分散到不同的机器上。有时...

蛋黄_Yolks
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部