Xcode8 + Cocoapods + Swift2.3 适配

Xcode8 GM + Swift3发布,影响最大的就是一直以来使用Swift2.3开发,包含各种依赖lib的成熟项目,虽然Xcode8提供了一键Swift2.3 convert Swift3的选项,但是转换完成后几百个error也是常事。所以,在Xcode8下继续使用Swift2.3开发是简便快速的方式。

项目适配
升级完Xcode8之后,老项目打开之后,会弹出转换到Swift3的提示,两次点击Later忽略它

可以通过 Edit -> Convert -> To Current Swift Syntax… 来手动转换到Swift3
2.通过将Build Settings里的Use Legacy Swift Language Version设置为Yes,限定项目的Swift版本为2.3

Cocoapods适配
我们可以使用上面的方式,同样将Podsproject的Use Legacy Swift Language Version设置为Yes,老的项目就能够在Xcode8下以Swift2.3运行了。
但是重新运行pod install或pod update安装(更新)pods后,Podsproject的Use Legacy Swift Language Version会被重置,我们可以通过pod钩子的方式,自动设置swift版本在Podfile文件头部,加入代码

post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[‘SWIFT_VERSION’] = ‘2.3’
end
end
end
再次运行pod install后,所有的Swift依赖都会被限定为Swift2.3版本运行。

End
继续使用Swift2.3只是权宜之策,待各类小问题解决之后,Swift3必然是大势所趋。

项目代码不是适配Swift3的难点,重点是三方框架
某些框架的Swift3存在小问题,比如Alamofire,支持Swift3的release 4.0,设备要求是iOS9+,对于项目来说几乎是不可接受的
Cocoapods和项目project中的Use Legacy Swift Language Version,需要保持相同的设置
Swift2.3和Swift3的代码不可以混用

文/TifaTsubasa(简书作者)
原文链接:http://www.jianshu.com/p/dedd1c4bc012

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值