美文网首页
Xcode8 + Cocoapods + Swift2.3 适配

Xcode8 + Cocoapods + Swift2.3 适配

作者: TifaTsubasa | 来源:发表于2016-09-22 12:41 被阅读808次

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

    项目适配

    1. 升级完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 installpod 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的代码不可以混用

    相关文章

      网友评论

          本文标题:Xcode8 + Cocoapods + Swift2.3 适配

          本文链接:https://www.haomeiwen.com/subject/vijzettx.html