将 Xcode 7.3.1 项目升级到 Xcode 8.0

Posted

技术标签:

【中文标题】将 Xcode 7.3.1 项目升级到 Xcode 8.0【英文标题】:Upgrade Xcode 7.3.1 Project to Xcode 8.0 【发布时间】:2016-09-21 10:18:03 【问题描述】:

我想将我的 Xcode 7.3.1 项目升级到 Xcode 8。我的项目是在 Xcode 7 中用 swift 2.2 编写的,但现在我想用 swift 3.0 升级到 Xcode 8。我的项目在升级到 Xcode 8 时包含一些 pod 文件库,我面临很多警告和错误。与故事板相关的警告已解决,但 pod 文件中的错误未解决。

Xcode 告诉我将 swift 语法转换为最新语法,所以我做到了。 pod 文件中显示 Swift 语法错误。我正在尝试解决 pod 文件 swift 语法错误,然后 Xcode 告诉我解锁 pod 文件,我做到了,但是 pod 无法正常工作。

有人知道如何解决 pod-files 错误吗? 或如何将整个 Xcode 7.x 项目转换为 Xcode 8?

【问题讨论】:

【参考方案1】:

以上问题的最终答案是:

在你的 podfile 中添加代码 sn-p

   post_install do |installer|
    installer.pods_project.targets.each do |target|
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '3.0'
     end
    end
  end

然后在构建设置中检查 swift legacy 并将 swift 3 设置为 NO 或者你可以 为 swift 2.3 设置 Yes (如果您使用的是 Objective-c pod 存储库)

如果更新包含 swift3 代码,则一一检查所有 pod 存储库,或者您可以通过从 github 拉取请求,手动添加具有 swift 3 语法的代码。

如果我的回答是错误的,请编辑它

【讨论】:

【参考方案2】:

第 1 步: 在 Xcode 8.0 中打开项目

第 2 步: 转到编辑 > 转换器 > 到当前的 Swift 语法。

第 3 步: 选择要转换的 swift 版本。

【讨论】:

感谢您的回答,但我已经做到了,现在我找到了解决方案...【参考方案3】:

有一个构建设置可让您继续使用 Swift 版本构建您的 Swift 项目,该版本在语法上与 Xcode 7 中的现有项目基本相似:使用旧版 Swift 语言版本

Just drop into your project’s build settings and search for legacy swift to find the correct build setting, then switch the setting to YES to opt-in to Swift 2.3 rather than Swift 3 in Xcode 8.

【讨论】:

以上是关于将 Xcode 7.3.1 项目升级到 Xcode 8.0的主要内容,如果未能解决你的问题,请参考以下文章

无法使用版本 XCode 7.3.1 和 OS X 10.11.6 将应用程序提交到 iTunes

将 Xcode4.x 升级到 Xcode5.0 后故事板图形消失了

将 xcode 升级到 10.2 版后面临 AFNetworking 错误

将应用程序从适用于 iOS 10 的 xcode 7.3.1 上传到 iTunes

xcode 7.3.1 无效的设备状态

将 XIB 从 Xcode 5 降级到 Xcode 4.6