iOS--CocoaPods的安装与使用记录

1 篇文章 0 订阅

背景

前段时间参见了一个很casual的面试,一间初创公司老大邀请了他在微信的好友作为面试官,同时也是比我大两届的师兄,谈话中感到自己被指导了一番,明白自己的技术还是太渣了~~之后一直在赶羊晚的项目,这段时间,稍微空闲了点,就一直在思考如何才能加速自己的开发效率。通过那一次的面试自己印象深刻的有三点:1是有效运用各种辅助工具;2是实现自动化以及模块化,减少做重复的工作;3是语言须是要学,但是更重要的是学会更多通用型的知识,如网络、加密等。

这篇先记录有效运用辅助工具之CocoaPods。

什么是CocoaPods

CocoaPods官网是:cocoapods.org
至于什么CocoaPods,官网的原话是这样的:

CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over ten thousand libraries and can help you scale your projects elegantly.

大致翻译就是:CocoaPods是针对Swift和ObjC项目的依赖管理。它拥有超过1万的包,并且能帮助你优雅地组织你的项目。

它能帮你管理项目中的第三方开源库,下载、导入、添加依赖、设置属性(如arc属性等)等操作都只需要简单的命令就可实现,减去了自己做这些事情的时间。

下面引用网络分享者的说明再谈谈CocoaPods(为了好看点修改了下样式):史上最详细的CocoaPods安装教程

CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。

Cocoapods意义体现在两个方面。第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。第二,使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较“标准的”,而不是网上随便找到的,这样可以让我们找到真正好用的类库。

CocoaPods的核心组件
1. CocoaPods是用Ruby写的,并划分成了若干个Gem包。
2. CocoaPods在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、 CocoaPods/Core和 CocoaPods/Xcodeproj。
3. CocoaPods / CocoaPod:这是面向用户的组件,每当执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。
4. CocoaPods / Core:Core gem提供了与CocoaPods相关的文件(主要是podfile和podspecs)的处理。
5. Podfile:该文件用于配置项目所需要的第三方库,它可以被高度定制。本文中我们主要在这里做动作。
6. Podspec:该文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。
7. CocoaPods / Xcodeproj:这个包负责处理工程文件,它能创建以及修改.xcodeproj文件和.xcworkspace文件。它也可以作为一个独立的包使用,当你要编写修改项目文件的脚本时,可以考虑使用CocoaPods/Xcodeproj。

CocoaPods的安装

ruby的安装

由于CocoaPods是由ruby写的,所以在安装CocoaPods之前需要先安装ruby。一般来说,现在OS X EI Capitan默认安装了ruby 2.0.0版本了。在命令行输入
ruby -v
如果已安装,则出现ruby的版本信息;否则出现不存在命令的提示。这里就不说安装ruby的方法了。至于想升级ruby的,可执行命令
gem update --system

CocoaPods的安装

安装CocoaPods是非常简单的,就一句命令:
sudo gem install cocoapods
但是,天朝的网络高墙把ruby的源(https://ruby.org)给封了。那怎么办,网上自然有解决办法。当然如果你是系统全局能翻出去的,那就可忽略这个方法了。
有赖于淘宝的贡献,在国内提供了ruby的镜像源(ruby.taobao.org),按照官网的说法,镜像源能15min同步一次,尽可能做到最新的更新,而且官网说到现在http已经不支持了,全面支持https,所有网上有很多关于CocoaPods的文章这一点还没来得及更新。有了这个就需要对系统的默认ruby源切换到淘宝的ruby源上,具体做法是:

  • 删除默认的ruby源:gem sources --remove https://ruby.org
  • 新增淘宝的ruby源:gem sources --a https://ruby.taobao.org
  • 查看当前的ruby源:gem sources -l,出现:
* CURRENT SOURCES *
https://ruby.taobao.org/ 

则说明切换成功了

来到这里,就可以正常安装CocoaPods了,执行命令sudo gem install cocoapods即可,耐心等待一会儿(下载安装速度视网络环境)。

CoocaPods的简单使用

经过上述的安装,现在可以使用CoocaPods来为项目添加第三方库的依赖了。

  • 执行命令搜索第三方库:pod search AFNetworking,则可查看到所有关于AFNetworking的库,输出的结果中存在这么一项:
-> AFNetworking (3.0.1)
   A delightful iOS and OS X networking framework.
   pod 'AFNetworking', '~> 3.0.1'
 - Homepage: https://github.com/AFNetworking/AFNetworking
 - Source:   https://github.com/AFNetworking/AFNetworking.git
 - Versions: 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.0.1)
     - AFNetworking/Security (3.0.1)
     - AFNetworking/Reachability (3.0.1)
     - AFNetworking/NSURLSession (3.0.1)
     - AFNetworking/UIKit (3.0.1)
  • 通过Terminal进入项目目录。
  • 新建Podfile文件,描述项目需要依赖的第三方库,可通过使用本地文档编辑处理或者使用vim命令处理,文档写入以下内容(以依赖AFNetworking为例):
    pod 'AFNetworking', '~> 3.0.1'

  • 执行命令下载第三方库:pod install,CocoaPods将自动从源中下载对应的第三方库并做好项目对应的设置

  • 完成上述步骤后,如果Xcode已打开了项目,需先关闭Xcode,因为从此打开项目就不是从.xcodeproj文件打开了,而是从.xcworkspace打开,因为改文件才会包含对应的依赖信息
  • 以后需要添加或减少第三方库,只需要修改Podfile文件,并执行pod update,CocoaPods就能自动进行更新操作。
  • (ps:如果下载不到,可以尝试pod install - -verbose - -no-repo-update命令,原因应该还是高墙的问题)

至此,就可以爽yy地使用CocoaPods了

20160121更新

  1. 错误: ERROR: While executing gem … (Errno::EPERM)
    Operation not permitted - /usr/bin/fuzzy_match
    原因: 应该是没有权限写入/usr/bin/文件里
    使用命令: sudo gem install -n /usr/local/bin cocoa pods

  2. 更新pod资源库命令: pod repo update

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值