使用Xcode8和一个使用cocoapods的swift 2.3项目

Ale*_*ach 5 xcode cocoapods swift swift3

我有一个项目,其中包含大量代码,我认为是swift 2.3它包含和app扩展也用swift 2.3编写并使用2个Cocoapods:SwiftyJSONMMWormhole.下载Xcode 8.3 beta后,迁移器运行了,我在一个主swift文件中包含了近100个编译器错误SwiftyJSON.

基本上我想知道是否有一种方法可以在Xcode8中使用这些细节.我很乐意将我自己的代码更新为swift3但是我不控制cocoapods(MMWormHole在Objective-C中,所以我假设Xcode将它转换为它需要的Swift版本,因为它不会发出编译器错误).我可以告诉Xcode全局使用swift 2.3吗?

Bun*_*ylm 6

您必须设置Use Legacy Swift Language VersionYES使用SWIFT 2.3代码Xcode 8.然后将其添加到您的Podfile所有pod目标中确认相同.

post_install do |installer| 
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |configuration|
      configuration.build_settings['SWIFT_VERSION'] = "2.3" 
    end 
  end 
end
Run Code Online (Sandbox Code Playgroud)

我希望,这会有所帮助.


Cos*_*ows 0

根据我启动工作区时的经验,SDK 应该询问您是否要将代码转换为 Swift 3 还是“稍后”执行。如果只是稍后选择,它不会将您的代码迁移到 swift 3。我必须警告您,我也经历过同样的事情,并且几乎不可能仅仅因为您想使用最新最好的 Xcode 8 就向后工作。您最终会遇到问题,例如当您准备推送到应用程序商店时,iTunesConnect 不会接受任何低于版本 10 的文件。此外,当其他开发人员继承您的代码时,他们也会遇到问题使用的是早期版本的 Xcode。