包涵cocoapods的安装与使用笔记,和Podfile的实用写法。
一、cocoapods安装和使用
如果在大陆地区,可能会连接不上默认的源地址链接。需要将默认的源地址修改为可用地址:https://gems.ruby-china.com/ 。对于能够连接默认源的开发人员可以直接执行第5步的操作
- 在终端查看当前源
$gem sources -l
成功提示:
```
*** CURRENT SOURCES ***
https://XXXXXXXXXXXXXX/
```
-
删除不能使用的源
$gem sources --remove https://XXXXXXXXXXXXXX/
注意: 最后的/
,要与原始链接完全一致成功提示:
https://XXXXXXXXXXXXXX/ removed from sources
-
添加源
$gem sources -a https://gems.ruby-china.com/
成功提示:
https://gems.ruby-china.com/ added to sources
-
重复第1步,检查当前源是否替换成功
成功提示:
*** CURRENT SOURCES *** https://gems.ruby-china.com/
-
执行
$sudo gem install -n /usr/local/bin cocoapods
安装最新CocoaPods -
下载索引文件
$pod setup
这一步需要的时间比较长,需要耐心等待成功提示:
Setup completed
PS. 假如Setup completed很快就出现,且无法执行以下步骤,可以使用pod repo update
命令更新索引
-
在终端搜索需要的开源库
$pod search 开源库的名字
假如你要集成RxSwift库。可以输入$pod search rxswift
进行搜索。搜索结果:
-> RxSwift (2.0.0-beta.3) Microsoft Reactive Extensions (Rx) for Swift and iOS/OSX platform pod 'RxSwift', '~> 2.0.0-beta.3' - Homepage: https://github.com/ReactiveX/RxSwift - Source: https://github.com/ReactiveX/RxSwift.git - Versions: 2.0.0-beta.3, 2.0.0-beta.2, 2.0.0-beta.1, 2.0.0-alpha.4, 2.0.0-alpha.3, 2.0.0-alpha.2, 2.0-alpha.1, 1.9.1, 1.9, 1.8.1, 1.8, 1.7, 1.6, 1.5, 1.4, 1.3, 1.2.1, 1.2, 1.1, 1.0, 0.9, 0.8, 0.7.1, 0.7 [master repo]
记下需要的开源库名字
RxSwift
-
创建并编辑podfile文件
- 执行
$cd 工程路径
,进入工程路径 - 执行
$touch podfile
,创建空的podfile文件 - 用Xcode(或Vim等)打开podfile文件
- 输入下面文本,下文中的RxSwift处输入你刚刚搜索记下来的库名
platform :ios, '9.0' use_frameworks! target '目标名' do pod 'RxSwift' end
支持iOS 9.0以上平台(注意:ios都是小写)
- 保存并退出编辑器
- 执行
-
执行
$pod install
安装podfile中的库
执行完以上步骤,三方库的集成已经成功。在工程目录内,会出现与工程名相同的*.xcworkspace
文件。此文件将包含以前的工程和Pods工程,打开此文件即可找到以前的工程,并在其中访问CocoaPods集成好的三方库。
- 使用三方库
打开xcworkspace文件后,可以找到之前的项目。
swfit中,在需要导入三方库的位置使用import XXXXXX
即可。
OC中,在需要导入三方库的位置使用#import <XXXXXX>
即可。
二、库的安装、更新与删除
上文中使用$pod install
安装了三方库,在第一次使用时,$pod install
和$pod update
都能实现安装功能。
下表是install和update的功能对比:
... | install | update |
---|---|---|
已经存在的库 | 不变 | 更新 |
未安装的库 | 安装 | 安装 |
已存在,但podfile中没有的库 | 删除 | 删除 |
在安装完成之后,工程目录中会生成Podfile.lock文件。
此文件用于记录已安装库的版本号。
在多人操作的工程中,它用于防止其他人执行$pod install
操作后,可能对已经安装了的库 意外的升级。
所以不要在git中忽略此文件。
三、podfile文件的一般写法
一般写法举例:
platform :ios, '9.0'
inhibit_all_warnings!
use_frameworks!
target '目标名' do
pod 'RxSwift'
pod 'AFNetworking'
end
platform
的功能
平台名称和最小支持平台版本号,上文中指iOS平台,最低支持iOS 9.0以上版本。
各个平台写法见下表:
平台 | 写法 |
---|---|
OS X | osx |
iOS | ios |
tvOS | tvos |
watchOS | watchos |
假如不填写版本号,默认的最低版本号如下:
平台 | 版本号 |
---|---|
OS X | 10.6 |
iOS | 4.3 |
tvOS | 9.0 |
watchOS | 2.0 |
inhibit_all_warnings!
的功能
忽略所安装库中的所有警告。
此关键字也可以写在pod行内,写法如下:
pod 'RxSwift', :inhibit_warnings => true
pod 'RxSwift', :inhibit_warnings => false
use_frameworks!
的功能
在使用了swift编程的项目中,需要将三方库打包成frameworks格式。
在OC项目中可以不添加此关键字。
target
的功能
指定工程中的target。
假如有多个target可以进行嵌套:
target 'ShowsApp' do
pod 'ShowsKit'
# 下面的ShowsTV既能够使用 ShowTVAuth 也能使用 ShowsKit
target 'ShowsTV' do
pod 'ShowTVAuth'
end
# 这个ShowsTests能够使用 Specta 和 Expecta,
# 并且可以经由ShowsApp访问ShowsKit
target 'ShowsTests' do
inherit! :search_paths
pod 'Specta'
pod 'Expecta'
end
end
此处用到了inherit!关键字,下面也简单讲一下这个关键字的功能。
inherit!
的功能
此处可以有三种写法:
inherit! :complete
inherit! :none
inherit! :search_paths
- :complete --> 目标继承父级的所有行为。
- :none --> 目标不继承父对象的任何行为。
- :search_paths --> 目标仅继承父级的搜索路径。
pod
的功能
书写格式举例:
pod 'Objection', '0.9'
用于导入库,可指定版本号。版本号指定常见规则如下:
= 0.1 0.1
> 0.1 大于0.1
>= 0.1 大于等于0.1
< 0.1 小于0.1
<= 0.1 小于等于0.1
~> 0.1.2 大于等于0.1.2,且小于0.2
其它写法请见官网:Pod功能描述
详细的podfile文件写法请参照cocoapods官网:
Podfile Syntax Reference
网友评论