为 cocoapods 开源库增加 swift3 支持
Xcode 8 beta 和 swift3 出来一阵子了,一直没时间看。今天想为自己开源的播放器 BMPlayer 增加个 swift3 的分支,顺便体验一下 swift3 和 Xcode beta4。
Xcode 8 beta 1 + CocoaPods
首先在 Xcode 8 下安装一下 swift3 的 pod 库看看有哪些坑。我选择了安装 Alamofire 和 SnapKit。为了使用 swift3 分支,其 podfile 如下
1 | target 'cocoapods' do |
结果 pod install
后试着跑起来就发现悲剧了。Google 一下得知是每次 pod update
或 pod install
时 Xcode 初始化框架设置。导致框架没有明确的 Swift 版本。
解决这个问题,需要在 podfile
最后增加如下代码,一遍每次安装依赖时指定依赖的 swift 版本。再次 pod install
后能正常跑起来了。
1 | post_install do |installer| |
迁移 BMPlayer
更新依赖
由于我的 BMPlayer
里面包含了 SnapKit 和 NVActivityIndicatorView 两个依赖,我第一步就得替换这个为 swift3 版本。 NVActivityIndicatorView 虽然提供了 swift3 版本,但是编译没通过。暂时弃用。
podfile 中增加以下函数
1 | def swift3_overrides |
迁移项目
先用 Edit -> Covert -> To Current Swift Sytax
来使用 Xcode 的自动转换功能。此时记得不要勾选自己的库以外的库。