首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用cocoapods的swift 2.3项目中使用Xcode8

在使用cocoapods的swift 2.3项目中使用Xcode8
EN

Stack Overflow用户
提问于 2016-07-28 00:32:39
回答 4查看 6K关注 0票数 5

我有一个用swift 2.3编写的少量代码的项目,它包含应用程序扩展,也是用swift 2.3编写的,并使用了2个Cocoapods:SwiftyJSONMMWormhole。在下载了Xcode8.3beta之后,migrator运行,我在SwiftyJSON中包含的一个主要的swift文件中留下了几乎100个编译器错误。

基本上,我想知道是否有一种方法可以在Xcode8中工作,因为有这些细节。我很高兴将我自己的代码更新为swift3,但是我不控制cocoapods (MMWormHole是objective-C的,所以我假设Xcode会将其转换为它需要的任何版本的Swift,因为它不会发出编译器错误)。我能告诉Xcode在全球范围内使用swift 2.3吗?

EN

回答 4

Stack Overflow用户

发布于 2016-09-26 13:47:48

您必须将Use Legacy Swift Language Version设置为YES才能在Xcode 8中使用SWIFT 2.3代码。然后将其添加到您的Podfile中,以使您的所有pod目标都确认相同。

代码语言:javascript
复制
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

我希望,这会有所帮助。

票数 6
EN

Stack Overflow用户

发布于 2016-07-28 07:45:52

许多开源Swift项目都有针对Swift 3或Swift 2.3的分支(有关流行方法的详细信息,请参阅this post )。我查看了SwiftyJSON,它似乎有一个针对Swift 3的分支,所以你可以将你的应用程序转换为Swift 3,然后试一试。要使用它,请将Podfile中的SwiftyJSON条目更改为:

代码语言:javascript
复制
pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'swift3'

每个Xcode8测试版的更新都取决于项目,所以它可能不会完全正常工作,但很可能会有少于100个错误。

备注:在更新所有内容并修复编译器错误后,您可能会看到“Use Legacy Swift Language Version”错误。可以通过将post_install步骤添加到Podfile (参见this GitHub issue)或更新到CocoaPods 1.1.0.beta.1或更高版本(gem install cocoapods --pre)来修复此问题。

票数 2
EN

Stack Overflow用户

发布于 2016-07-28 06:20:30

根据我在启动工作区时的经验,SDK应该会询问您是要将代码转换为Swift 3,还是“以后”再转换。我必须警告你,我也经历过同样的事情,仅仅因为你想使用最新最棒的Xcode8,你就几乎不可能倒退。你最终会遇到这样的问题,比如当你准备推送到应用商店时,iTunesConnect不会接受任何低于版本10的文件。另外,当其他开发人员继承你的代码时,如果他们使用的是更早版本的Xcode,他们也会遇到问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38618617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档