Swift 3的 beta 版现在已经出来了, Chris Lattner 之前在邮件里也大概提到说 Swift 3在八月就基本上全面完工
大家在写小 demo 或者是项目迁移到 Swift 3.0 的时候遇到最大的一个问题应该是第三方库的添加
Swift 社区一直都是热情爆满, 诸如 Alamofire, Decodable等第三方库都有 Swift 3.0 的分支, 但如果在导入的时没有处理一下, 就总是会出各种奇奇怪怪的问题, 我在这里分享一下我自己的解决方案
其实主要要处理的问题就只有两个
指定第三方库的某个特定分支
指定工程文件内 Swift 编译的版本
Cocoapods
这里以 Alamofire 为例, 主要是需要在 podfile 里面多加点东西
指定分支
首先是指定分支, cocoapods本身只支持 name 跟 version 两个参数, 但我们可以通过指定 git 仓库, 然后再指定 branch, 具体格式如下:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'swift3'
指定编译版本
还有就是指定 Swift 的版本, 只要在项目的最后加上下面这几句就可以了, 这里的几句话对项目里的 target 做了个遍历, 修改了全部 target 的 Swift 编译版本
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
但是这么写有一个缺点, Objective-C 跟 Swift 的混编项目, 如果想要引入 OC 的库的话, 就不能这么做了, 但是一个一个去设置编译版本又太麻烦, 我觉得最简单的还是直接进去项目里, 把 SWIFT_VERSION 这一项删掉就可以了
完整 podfile 如下:
project 'sample.xcodeproj'
platform :ios, '9.0'
target 'sample' do
use_frameworks!
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'swift3'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
Carthage
Carthage 的具体用法我就不解释了, 其实我个人而言还是更喜欢 Carthage, 自己操作过一遍基本上都能理解第三方库导入的过程了
指定分支
Carthage由于本身就是一个去中心化的包管理器, 所以在 cartfile 里面选择分支就可以了
github "Alamofire/Alamofire" "swift3"
指定编译版本
Carthage编译就很简单了, Swift 3的话直接 carthage update 就行了, xcodebuild 指向了Xcode 8的前提下, 默认 Swift 3, 但是 Swift 2.3的话就需要指定一下版本, 如下:
TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 carthage update --platform ios
然后编译的时候有一点需要注意的是, Carthage 默认会调用 xcode build 去变异, 如果我们电脑同时有两个版本的 Xcode 的时候, 需要确认一下 Xcode build 的版本
如果不是 Xcode 8的话, 就运行一下这条命令去修改就可以了
sudo ./xcode-select -switch /Applications/Xcode-beta.app/
火柴人绳索英雄2无限金币版 (Stickman Rope Hero 2)安卓版v2.2v3.4.2
下载奥特曼之格斗超人内测版本 安卓最新版v11.0.0
下载奥特曼之格斗超人百度版 安卓版v11.0.0
下载奥特曼之格斗超人4399游戏盒版 最新安卓版v11.0.0
下载德凯奥特曼D闪光剑模拟器 安卓版v1.0
德凯奥特曼D闪光剑模拟器是一个非常有趣的奥特曼变身模拟器,可
亚刻觉醒器 安卓版v1.1
亚刻觉醒器模拟器是一个非常有趣的奥特曼变身模拟器,为喜欢亚刻
海上餐厅无限金币版 v1.0
海上餐厅免广告版是游戏的破解版本,在该版本中为玩家去除了广告
阿西美女室友竟然全解锁版 v1.0.2
阿西美女室友竟然内置菜单版是游戏的破解版本,在该版本中为玩家
我是大东家正版 最新版v1.2.738
我是大东家正版是一款放置类模拟经营手游,玩家将回到古代成为家