Michael

写写代码,说说人生

您好,我是Michael,欢迎来到我的个人家园。
代码搬运工,目前就职于XX证券,努力修行中。


H5 / Java / Objc / Swift / Vue / RN

CocoaPods使用心得

简介

本章介绍什么是 CocoaPods ,如何使用 CocoaPods , 以及 CocoaPods 的原理,和使用 CocoaPods 时经常出现的一些问题。

Cocoapods 是 OS X 和 iOS 下的一个第三方库管理工具。我们能使用CocoaPods添加被称作 “Pods”的依赖库,并轻松管理它们的版本,CocoaPods会帮我们配置好这些三方库的路径及开发环境,极大的提升了开发者的工作效率。

安装CocoaPods

Mac下自带ruby,使用ruby的gem命令安装,ruby的软件源被墙了,把官方的ruby源替换成国内的淘宝源。

更换Gem源

$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l
  • 1.移除掉原有的源(服务器在国外,速度较慢)。
  • 2.等1有反应之后再敲2命令(替换成淘宝上的ruby镜像https)。
  • 3.验证是否成功。成功如下:
*** CURRENT SOURCES ***
http://ruby.taobao.org/

更新Gem源

sudo gem update --system

安装cocoapods

$ sudo gem install cocoapods
$ pod setup

pod setup 在执行时会比较慢,因为Cocoapods 要将它的信息下载到 ~/.cocoapods目录下, 耐心等待…

提升cocoapods的安装速度

所有的项目的 Podspec 文件都托管在https://github.com/CocoaPods/Specs。第一次执行 pod setup 时,CocoaPods 会将这些podspec索引文件更新到本地的 ~/.cocoapods/目录下,这个索引文件比较大,有 80M 左右。 作者akinliu 在 gitcafe 和 oschina 上建立了 CocoaPods 索引库的镜像(在国内),我们可以使用CocoaPods国内的镜像索引,操作时会快多了,如gitcafe:

pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update

使用cocoapods

cocoapods安装完成后,使用 pod search 命令来验证一下

pod search AFNetworking

终端将会有如下结果:

-> AFNetworking (3.0.4)
A delightful iOS and OS X networking framework.
pod 'AFNetworking', '~> 3.0.4'
- Homepage: https://github.com/AFNetworking/AFNetworking
- Source:   https://github.com/AFNetworking/AFNetworking.git
- Versions: 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.0.4)
- AFNetworking/Security (3.0.4)
- AFNetworking/Reachability (3.0.4)
- AFNetworking/NSURLSession (3.0.4)
- AFNetworking/UIKit (3.0.4)

-> AFNetworking+AutoRetry (0.0.5)
Auto Retries for AFNetworking requests
pod 'AFNetworking+AutoRetry', '~> 0.0.5'
- Homepage: https://github.com/shaioz/AFNetworking-AutoRetry
- Source:   https://github.com/shaioz/AFNetworking-AutoRetry.git
- Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]
.........太多了,省略

pod search 是CocoaPods的一个搜索命令,我们可以用来搜索任何托管在CocoaPods上的三方库。
使用CocoaPods时需要新建一个 Podfile 的文件,cd 到 我的Demo项目里,Demo目录下有三个文件

Demo、 Demo.xcodeproj、 DemoTests

新建 Podfile

touch Podfile

vim 编辑 Podfile

vim Podfile

由于是新建的 Podfile 里面应该是空白的。然后我们在里面添加依赖库,格式如下:

platform :ios
pod 'Reachability',  '~> 3.0.0'
pod 'ASIHTTPRequest'

‘~> 3.0.0’ 是 Reachability 的版本号, 设定了版本号CocoaPods就会下载对应的版本,ASIHTTPRequest没指定版本号,CocoaPods就会下载最新版本的ASIHTTPRequest。 退出编辑,执行 pod install 下载三方库。

pod install

完成后我Demo项目下的文件多了几个:

Demo、 Demo.xcodeproj 、 DemoTests(之前的三个)
Demo.xcworkspace、Podfile、Podfile.lock、Pods

这个时候我们打开Demo项目是点击 Demo.xcworkspace 文件了,到此CocoaPods的基本使用已经讲完了,接下来的CocoaPods的原理,和让我们自己的三方库也支持CocoaPods。

待续…

深入理解 CocoaPods


转载请注明:Michael的博客 » 点击阅读原文

最近的文章

我们日常生活中的 iBeacon

  随着低功耗蓝牙的推出,iBeacon 的使用是越来越广泛了,如:微信的附近摇一摇功能,又或者是当你进入大型商场,一些店铺给你推送通知,VR 场景识别等等,这些表示 iBeacon 已经与我们的生活精密相连了。简介: 概念: iBeacon 是 iOS7 后苹果出的一项新技术,支持蓝牙4.0(或以上)的 iOS 设备,工作方式是低功耗蓝牙(Bluetooth Low Energy),向周围发送自己特有的ID,一个 iBeacon 硬件设备在不做任何处理的情况下一般可使用两三年左...…

能工巧匠集继续阅读
更早的文章

Swift 2 throws 全解析 - 从原理到实践

本文最初于 2015 年 12 月发布在 IBM developerWorks 中国网站发表,其网址是 http://www.ibm.com/developerworks/cn/mobile/mo-cn-swift/index.html。如需转载请保留此行声明。Swift 2 错误处理简介throws 关键字和异常处理机制是 Swift 2 中新加入的重要特性。Apple 希望通过在语言层面对异常处理的流程进行规范和统一,来让代码更加安全,同时让开发者可以更加及时可靠地处理这些错误。Swi...…

能工巧匠集继续阅读