iOS cocoapod 使用

一、什么是CocoaPods

在进行iOS开发的时候,总免不了使用第三方的开源库,CocoaPods(GitHub)是一个用来帮助我们管理第三方依赖库的工具。

使用CocoaPods的目的是让我们能自动化的、集中的、直观的管理第三方开源库。

二、安装CocoaPods

1.安装

  CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。幸运的是OS X系统默认的已经可以运行Ruby了,因此我们只需要执行以下命令:

sudo gem install cocoapods 

  CocoaPods是以Ruby gem包的形式被安装的。在安装执行的过程中,可能会问我们是不是更新rake,输入y即可。这是因为rake gem包会在安装的过程中检查更细,如果有可用的新版本就会出现刚才的选项。

  在安装进程结束的时候,执行命令:

pod setup  

  如果没有报错,就说明一切安装就成功了!

2.安装过程中可能遇到的问题

(1).执行完install命令半天没反应

  这有可能是因为Ruby的默认源使用的是cocoapods.org,国内访问这个网址有时候会有问题,网上的一种解决方案是将远替换成淘宝的RubyGems镜像,替换方式如下:

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

https://ruby.taobao.org
# 请确保只有 ruby.taobao.org

(2).gem版本过老

  gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可:

sudo gem update --system 

3.升级CocoaPods

sudo gem install cocoapods 

三、使用CocoaPods

为了演示这个过程,我创建了一个名为CocoapodsTest的工程。  

1.创建Podfile

在CocoapodsTest工程的根目录下执行命令,创建空白的Podfile文件:

pod init

2.查找第三方库(以AFNetworking为例)

pod search AFNetworking

查询出多个项目,其中有一个是AFNetworking:

-> AFNetworking (3.1.0)
   A delightful iOS and OS X networking framework.
   pod ‘AFNetworking‘, ‘~> 3.1.0‘
   - Homepage: https://github.com/AFNetworking/AFNetworking
   - Source:   https://github.com/AFNetworking/AFNetworking.git
   - Versions: 3.1.0, 3.0.4, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0-beta.3,
   3.0.0-beta.2, 3.0.0-beta.1, 2.6.3, 2.6.2, 2.6.1, 2.6.0, 2.5.4, 2.5.3, 2.5.2,
   2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0,
   2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4,
   1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2,
   1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
   - Subspecs:
     - AFNetworking/Serialization (3.1.0)
     - AFNetworking/Security (3.1.0)
     - AFNetworking/Reachability (3.1.0)
     - AFNetworking/NSURLSession (3.1.0)
     - AFNetworking/UIKit (3.1.0)

3.编辑Podfile

(1).根据需要,我们可以在Podfile文件中写入需要用到的第三方库,以AFNetworking库为例:

# Uncomment this line to define a global platform for your project
# platform :ios, ‘8.0‘
# Uncomment this line if you‘re using Swift
# use_frameworks!

target ‘CocoapodsTest‘ do

pod ‘AFNetworking‘, ‘~> 3.0‘

end

target ‘CocoapodsTestTests‘ do

end

target ‘CocoapodsTestUITests‘ do

end

  注:platform :ios, 8.0 表示iOS应用支持8.0以上版本

  注:use_frameworks! 使用Swift写APP的时候请开启

(2).Podfile和target

  Podfile本质上是用来描述Xcode工程中的targets用的。如果我们不显式指定Podfile对应的target,CocoaPods会创建一个名称为default的隐式target,会和我们工程中的第一个target相对应。换句话说,如果在Podfile中没有指定target,那么只有工程里的第一个target能够使用Podfile中描述的Pods依赖库。

  如果想在一个Podfile中同时描述project中的多个target,根据需求的不同,可以有不同的实现方式。现在的project中包含的target有:CocoapodsTest、CocoapodsTestTests、CocoapodsTestUITests。

(3).引入依赖库时,需要显示或隐式注明引用的依赖库版本,具体写法和表示含义如下:

pod ‘AFNetworking‘      //不显式指定依赖库版本,表示每次都获取最新版本
pod ‘AFNetworking‘, ‘2.0‘     //只使用2.0版本
pod ‘AFNetworking‘, ‘> 2.0‘     //使用高于2.0的版本
pod ‘AFNetworking‘, ‘>= 2.0‘     //使用大于或等于2.0的版本
pod ‘AFNetworking‘, ‘< 2.0‘     //使用小于2.0的版本
pod ‘AFNetworking‘, ‘<= 2.0‘     //使用小于或等于2.0的版本
pod ‘AFNetworking‘, ‘~> 0.1.2‘     //使用大于等于0.1.2但小于0.2的版本
pod ‘AFNetworking‘, ‘~>0.1‘     //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking‘, ‘~>0‘     //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本 

4.执行导入命令

pod install

pod install命令执行成功后,会发现多出 CocoapodsTest.xcworkspace、Podfile.lock、Pods 文件。

我们从现在起,我们需要使用CocoapodsTest.xcworkspace文件来开发。

对于工程发生的变化,有几点需要说明:

  • 第三方库会被编译成静态库供我们正真的工程使用

  CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。

  • 我们的工程和第三方库所在的工程会由一个新生成的workspace管理

  为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoapodsTest.xcworkspace文件。

原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。

5.执行更新命令

(1).若还要使用其它第三方库,如 Reachability:

target ‘CocoapodsTest‘ do

pod ‘AFNetworking‘, ‘~> 3.0‘
pod ‘Reachability‘

end

再执行命令:

pod update

(2).若要移除一个第三方库,如 Reachability;只要删除在Podfile文件中pod ‘Reachability‘这行:

target ‘CocoapodsTest‘ do

pod ‘AFNetworking‘, ‘~> 3.0‘

end

再执行:

pod update

四、Podfile.lock文件

执行完pod install之后,会生成一个Podfile.lock文件。这个文件看起来跟我们关系不大,实际上绝对不应该忽略它。

该文件用于保存已经安装的Pods依赖库的版本,通过CocoaPods安装了AFNetworking这个pods依赖库以后对应的Podfile.lock文件内容为:

PODS:
  - AFNetworking (3.1.0):
    - AFNetworking/NSURLSession (= 3.1.0)
    - AFNetworking/Reachability (= 3.1.0)
    - AFNetworking/Security (= 3.1.0)
    - AFNetworking/Serialization (= 3.1.0)
    - AFNetworking/UIKit (= 3.1.0)
  - AFNetworking/NSURLSession (3.1.0):
    - AFNetworking/Reachability
    - AFNetworking/Security
    - AFNetworking/Serialization
  - AFNetworking/Reachability (3.1.0)
  - AFNetworking/Security (3.1.0)
  - AFNetworking/Serialization (3.1.0)
  - AFNetworking/UIKit (3.1.0):
    - AFNetworking/NSURLSession

DEPENDENCIES:
  - AFNetworking

SPEC CHECKSUMS:
  AFNetworking: 5e0e199f73d8626b11e79750991f5d173d1f8b67

COCOAPODS: 0.39.0

Podfile.lock文件最大得用处在于多人开发。对于没有在Podfile中指定Pods依赖库版本的写法,如下:

pod ‘Reachability‘

该句话用于获取当前Reachability这个Pods依赖库的最新版本。
当团队中的某个人执行完pod
install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含
Podfile.lock文件的工程以后,再去执行pod
install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。如果没有Podfile.lock文件,后续所有用户执行pod
install命令都会获取最新版本的Reachability,这就有可能造成同一个团队使用的依赖库版本不一致,这对团队协作来说绝对是个灾难!

在这种情况下,如果团队想使用当前最新版本的SBJson依赖库,有两种方案:

  • 更改Podfile,使其指向最新版本的Reachability依赖库;
  • 执行pod update命令;

鉴于Podfile.lock文件对团队协作如此重要,我们需要将它添加到版本管理中。

时间: 2024-08-27 20:52:15

iOS cocoapod 使用的相关文章

iOS cocoapod实际操作步骤

1,先打开终端检查下ruby版本  注:苹果是自带有ruby的 ruby -v 查看ruby版本 luweiMinideMini:~ luweimac_mini$ ruby -v ruby 2.3.3p222 (2016-11-21 revision 56859) [universal.x86_64-darwin17] 如果需要更新ruby 更新ruby 终端输入如下命令(把Ruby镜像指向taobao,避免被墙,你懂得) gem sources --remove https://rubygem

iOS开发实战教学:在Swift怎样创建CocoaPod?

摘要:开发者可能对一些比较知名的开源CocoaPods框架比较熟悉,但有些时候可能找不到刚好满足需求的pod,本文作者以一个实战演练的过程详细介绍了如何使用Swift创建CocoaPods的过程. 本文出自:raywenderlich,译文出自:开发技术前线,译者:MrLoong 你可能会熟悉一些众所周知的.开源的CocoaPods的框架,例如Alamofire或MBProgressHUD,但有的时候你并不能找到一个符合你要求的pod,或者你可能想要把一个大的项目分成小的项目,或是可复用组建.

iOS 成长之路 使用cocoapod导入第三方文件

关于cocoapod的安装 1.下载 打开终端输入sudo gem install cocoapods 2.使用cocoapods 终端:cd 到当前项目目录 2.1 输入vim Podfile 键盘输入 i,进入编辑模式,输入 platform :ios, '7.0' pod '你要的第三方sdk名','~>版本' 按esc 输入‘ :’符号 再输入wq保存你的配置 安装 输入  pod install 没错误则成功    关闭你的项目 重新打开就可以使用 第三方的sdk了

ios开发工具 cocoapod(一)

一.什么是CocoaPods 1.为什么需要CocoaPods 在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson.AFNetworking.Reachability等等.使用这些库的时候通常需要: 下载开源库的源代码并引入工程 向工程中添加开源库使用到的framework 解决开源库和开源库以及开源库和工程之间的依赖关系.检查重复添加的framework等问题 如果开源库有更新的时候,还需要将工程中使用的开源库删除,重新执行前面的三个步骤,顿时头都大了... 自从有了Coco

IOS 上传自己的库到cocoapod

参考:http://www.cnblogs.com/SimonGao/p/4987668.html 参考:http://www.cnblogs.com/yueyuanyueyuan/p/5560954.html 参考:http://blog.csdn.net/wzzvictory/article/details/20067595 参考:http://www.jianshu.com/p/d7d1942dd3f1 1. 工程 引用的第三方库,不能用#import<> 而用#import"

如何将你牛逼的iOS代码分享到CocoaPod(转)

为了让读者一目了然,现在就从新建工程到最后提交podspec,简单粗暴的讲一通.Cocoapods不用解释太多,一句话...它是目前iOS开发中最广为使用的第三方库依赖管理工具. 下面开始讲创建pod的过程: 第一步:创建工程使用pod lib create命令创建新的工程 pod lib create MyLib这个命令执行过程中,会问东问西,然后给你生成一个新的工程,你的代码可以放到里面.注意:这个命令执行的最后一步会执行pod install,如果太慢或被墙,你可以中断掉它,然后自行执行

iOS 项目中使用CocoaPod管理项目初试

本着 学习,并记录笔记.. CocoaPods的安装和使用介绍 一,安装步骤: 1,用淘宝的Ruby镜像来访问cocoapods $ gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 $ gem sources -a http://ruby.taobao.org/ 2,验证你的Ruby镜像是并且仅是taobao $ gem sources -l 成功 3, 终端中运行 $ sudo gem install cocoapods 如

iOS学习46之第三方的安装和使用(通用方法)

本文主要说明CocoaPods的安装步骤.使用说明和常见的报错即解决方法. 1. CocoaPods 1>  CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具. 在开发iOS应用时,会经常使用第三方类库,比如SDWebImage.AFNetworking等等,手动的下载与添加类库非常麻烦,通过CocoaPods可以便捷的下载与管理第三方类库. 使用CocoaPods的目的是让我们能自动化的.集中的.直观的管理第三方开源库. 官方链接:https://cocoap

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,