标签:
CocoaPods 是开发 OS X 和 iOS 应用程序的一个第三方库的依赖管理工具。利用 CocoaPods,可以定义自己的依赖关系库 (称作 pods
),并且随着时间的变化,在整个开发环境中对第三方库的版本管理非常方便。
在iOS项目开发过程中,我们经常会使用一些第三方库,如AFNetworking、YYKit、Masonry等,通过这些优秀的第三方库,来帮助我们更有效率的进行开发。回想一下我们导入这些第三方库的过程:
上面的四个步骤,如果我们使用CocoaPods,那么只需要配置好相应的Podfile,CocoaPods会为我们去做好这些事情。
CocoaPods是用Ruby 的依赖管理 gem 进行构建的,要想使用它首先需要有Ruby的环境。OS X系统默认可以运行Ruby,因此执行以下命令即可:
$ sudo gem install cocoapods
安装完成后,执行下面的指令,如果没有报错,则说明安装成功。
$ pod setup
【说明】:如果执行上面指令的时候,长时间没有反应,这可能是因为Ruby的默认源使用cocoapods.org,国内访问这个网址有时候会有问题,可以将该源替换成淘宝的,替换方式如下:
$ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.taobao.org/
替换完成之后,执行指令:
$ gem sources -l
如果输出结果和下图一样,则表示替换成功。
CocoaPods的升级很简单,直接执行安装指令即可:
$ sudo gem install cocoapods
Podfile 是一个文件,用于定义项目所需要使用的第三方库。该文件支持高度定制,详细的信息可以参考Podfile 指南。下面列出常用的语法并进行说明。
先看一个示例的Podfile文件:
source ‘https://github.com/Artsy/Specs.git‘ source ‘https://github.com/CocoaPods/Specs.git‘ platform :ios, ‘8.0‘ inhibit_all_warnings! target ‘MVVMReactiveCocoa‘ do pod ‘SDWebImage‘, ‘~> 3.7.1‘ pod ‘UIActivityIndicator-for-SDWebImage‘ pod ‘MBProgressHUD‘, ‘~> 0.9‘ pod ‘SSKeychain‘, ‘~> 1.2.2‘ pod ‘IQKeyboardManager‘, ‘~> 3.2.0.3‘ pod ‘SVPullToRefresh‘, ‘~> 0.4.1‘ pod ‘MKNetworkKit‘, ‘~> 0.87‘ pod ‘WebViewJavascriptBridge‘, ‘~> 4.1.4‘ pod ‘FormatterKit‘, ‘~> 1.8.0‘ pod ‘DZNEmptyDataSet‘, ‘~> 1.5.1‘ pod ‘Ono‘, ‘~> 1.2.0‘ pod ‘FMDB‘ pod ‘UMengSocial‘, ‘~> 4.3‘ pod ‘GPUImage‘, ‘~> 0.1.7‘ pod ‘Reveal-iOS-SDK‘, ‘~> 1.6.0‘ pod ‘Appirater‘ pod ‘SDVersion‘ pod ‘YYKit‘ pod ‘OcticonsIOS‘, :git => ‘https://github.com/jacksonh/OcticonsIOS.git‘, :commit => ‘4bd3b21‘ pod ‘LCFInfiniteScrollView‘, :git => ‘https://github.com/leichunfeng/LCFInfiniteScrollView.git‘ target ‘MVVMReactiveCocoaTests‘ do inherit! :search_paths end end
看到上面的Podfile文件,有些语句的含义,我们也能大概理解,下面细说一下:
序号 | 语句 | 说明 |
1 | source ‘URL‘ | 指定镜像仓库的源 |
2 | platform : iOS, ‘6.0‘ | 指定所支持系统和最低版本 |
3 | inhibit_all_warnings! | 屏蔽所有warning |
4 | workspace ‘项目空间名‘ | 指定项目空间名 |
5 | xcodeproj ‘工程文件名‘ | 指定xcodeproj工程文件名 |
6 | pod ‘库名‘ | 引入库,什么版本都可以(一般是最新版本) |
7 | pod ‘库名‘, ‘版本‘ | 引入指定版本的库 |
8 | pod ‘库名‘, :podspec => ‘podspec文件路径‘ | 指定导入库的podspec文件路径 |
9 | pod ‘库名‘, :Git => ‘源码git地址‘ | 指定导入库的源码git地址 |
10 | pod ‘库名‘, :tag => ‘tag名‘ | 指定导入库的Tag分支 |
关于引入库的版本,除了指定和不指定之外,还有如下操作:
>0.1
高于0.1的任何版本;>=0.1
版本0.1和任何更高版本;<0.1
低于0.1的任何版本;<=0.1
版本0.1和任何较低的版本;?>0.1.2
版本 0.1.2的版本到0.2 ,不包括0.2。这个基于你指定的版本号的最后一个部分。这个例子等效于>= 0.1.2并且 <0.2.0,并且始终是你指定范围内的最新版本。为了演示使用CocoaPods的过程,在这里创建了一个MVVMDemo的演示项目,创建项目的过程这里不细说了。
在终端进入项目所在目录,然后用如下指令创建Podfile文件:
$ touch Podfile
此时项目文件夹里会创建一个名为Podfile的文件,如下图所示:
使用XCode打开Podfile文件:
$ open -a Xcode Podfile
在这里,我们需要导入AFNetworking、YYKit、Masonry库,因此在Podfile文件中输入如下内容:
source ‘https://github.com/CocoaPods/Specs.git‘ platform :ios, ‘8.0‘ inhibit_all_warnings! pod ‘AFNetworking‘ pod ‘YYKit‘ pod ‘Masonry‘
编写完成Podfile文件之后,保存关闭,输入如下指令导入第三方库:
$ pod install
CocoaPods就会做如下工作:下载源码、配置依赖关系、引入需要的framework等。命令的执行结果如下所示:
Updating local specs repositories CocoaPods 1.1.0.beta.1 is available. To update use: `gem install cocoapods --pre` [!] This is a test version we‘d love you to try. For more information see http://blog.cocoapods.org and the CHANGELOG for this version http://git.io/BaH8pQ. Analyzing dependencies Downloading dependencies Installing AFNetworking (3.1.0) Installing Masonry (1.0.1) Installing YYKit (1.0.7) Generating Pods project Integrating client project [!] Please close any current Xcode sessions and use `MVVMDemo.xcworkspace` for this project from now on. Sending stats Sending stats Pod installation complete! There are 3 dependencies from the Podfile and 3 total pods installed.
这说明pod install命令执行成功了。现在再看一下工程目录的变化:
从上图可以看到,多了三个文件:
打开MVVMDemo.xcworkspace工程,界面如下:
在项目中引用刚才添加的第三方库的头文件,执行编译操作,操作成功。
标签:
原文地址:http://www.cnblogs.com/LeeGof/p/5737551.html