如何下载和安装CocoaPods

来源:互联网 发布:淘宝老客户回访率查询 编辑:程序博客网 时间:2024/05/29 13:03

CocoaPods应该是iOS最常用最有名的类库管理工具.解决了以下两个问题:

1、你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目。2、某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库

应用场景之一:利用CocoaPods,在项目中导入AFNetworking类库

1、先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;
2、运行命令:`$ pod install.

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

bogon:~ devzkn$  gem sources -l*** CURRENT SOURCES ***https://rubygems.org/

安装cocoapods

bogon:~ devzkn$ sudo gem install cocoapods
27 gems installed

判断AFNetworking 是否支持CocoaPods。

bogon:~ devzkn$ pod search AFNetworkingSetting up CocoaPods master repo

配置 Podfile 文件内容。

注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。

pod 的文件信息可以在GitHub对应的AFNetworking框架中找到。
这里写图片描述

在终端中的当前项目目录下,运行以下命令:

$ pod install

安装第三方库之后,打开项目文件的方式

[!] Please close any current Xcode sessions and use `KNTestPod.xcworkspace` for this project from now on.Sending statsPod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.bogon:KNTestPod devzkn$

注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。

场景2:如何正确编译运行一个包含CocoPods类库的项目

在GitHub上找到一份代码符合自己想需求,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用CocoaPods很方便下载所需要的类库。

同时你会发现在UAAppReviewManagerExample文件夹下面有三个跟CocosPods相关的文件(文件夹):Podfile,Podfile.lock和Pods

UAAppReviewManager is a simple and lightweight App review prompting tool for iOS and Mac App Store apps. It’s Appirater all grown up, ready for primetime.

$ pod update

注意:
podinstallPodfile pod update会更新所有的类库,获取最新版本的类库。而且你会发现,如果用了 podupdate pod install 就成功了。

复杂的一个例子:

# 下面两行是指明依赖库的来源地址source 'https://github.com/CocoaPods/Specs.git'source 'https://github.com/Artsy/Specs.git'# 说明平台是ios,版本是9.0platform :ios, '9.0'# 忽略引入库的所有警告(强迫症者的福音啊)inhibit_all_warnings!# 针对MyApp target引入AFNetworking# 针对MyAppTests target引入OCMock,target 'MyApp' do     pod 'AFNetworking', '~> 3.0'     target 'MyAppTests' do       inherit! :search_paths        pod 'OCMock', '~> 2.0.1'     endend# 这个是cocoapods的一些配置,官网并没有太详细的说明,一般采取默认就好了,也就是不写.post_install do |installer|          installer.pods_project.targets.each do |target|      puts target.name    endend

例如:Specta 的导入

target :KNMVC2MVVMDemo2 do# your app dependencies  target :KNMVC2MVVMDemo2Tests do    inherit! :search_paths    pod 'Specta', '~> 1.0'    # pod 'Expecta',     '~> 1.0'   # expecta matchers    # pod 'OCMock',      '~> 2.2'   # OCMock    # pod 'OCHamcrest',  '~> 3.0'   # hamcrest matchers    # pod 'OCMockito',   '~> 1.0'   # OCMock    # pod 'LRMocky',     '~> 0.9'   # LRMocky  endend

高级用法 podspec.json

https://github.com/CocoaPods/Specs/blob/master/Specs/7/8/5/OctoKit/0.5/OctoKit.podspec.json

    pod 'OctoKit', :podspec => 'KNMVVMReactiveCocoaDemo/0.5/OctoKit.podspec.json'

通过Podfile指定路径,然后pod update。
参考