CocoaPods

初始化 Cocoapods

1
pod init

执行以上语句,Cocoapods 会创建默认的 Podfile

1
2
3
4
5
6
7
8
9
10
# Uncomment this line to define a global platform for your project
# platform :ios, '6.0'
 
target 'XDream' do
 
end
 
target 'XDreamTests' do
 
end

修改平台和使用 frameworks

1
2
platform :ios, "8.0"
use_frameworks!

为什么 Swift 要使用 dynamic frameworks

当说起 Swift library 时, 实际上是指 Swift dynamic framework,因为 Swift static libraries是不被允许。
iOS 8 推出的 dynamic frameworks 允许把代码,图象和其它资源打包在一起。在 iOS 8 之前,Cocoapods 以 static libraries
创建,当中只包含代码(可以包含不同的指令集,比如 i386, armv7), 但不能包含图象这些资源。

第二个不同点是,dynamic frameworks 可以有 namespace classes, 然而 static libraries 不能。

不像 Objective-C,标准的 Swift runtime libraries 没有包含在 iOS 中! 所以你的 framework 必须包含必要的 runtime libraries.
正因为如此,用 Swift 写的 pods 必须被创建成 dynamic frameworks。如果苹果允许 static libraries, 使用标准 runtime dependencies
的 libraries 会出现重复标识(因为 static libraries 没有 namespace)。

安装 pods

1
2
3
4
5
6
7
8
9
10
11
12
# Uncomment this line to define a global platform for your project
platform :ios, '8.0'

# Using frameworks instead of static library
use_frameworks!
target 'XDream' do
pod 'Alamofire', '1.2.3'
end

target 'XDreamTests' do

end

然后执行 pod install 命令, 在城内,很多时候会安装失败, 需要梯子方能安装成功。
安装成功,会看到以下的打印信息。注意最后一条,现在我们要使用 .xcworkspace 的文件来打开项目。

1
2
3
4
5
6
7
Analyzing dependencies
Downloading dependencies
Installing Alamofire (1.2.3)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `XDream.xcworkspace` for this project from now on.