迁移到 Swift 3 时可以使用旧框架吗?
Posted
技术标签:
【中文标题】迁移到 Swift 3 时可以使用旧框架吗?【英文标题】:Can I use old frameworks when migrating to Swift 3? 【发布时间】:2016-08-28 19:22:12 【问题描述】:我目前正在将我的项目迁移到 Swift3,因为我知道我在 ios 10 下存在一个需要修复的错误。
所以我在其中一台设备上安装了 iOS 10。 现在我无法在设备上运行我的应用,出现“Could not find developer disk image”错误。
所以我下载了最新的 Xcode8-beta。 现在我的代码无法编译 - 我首先必须将其转换为最新的语法。 因此,在修复所有非自动转换的语法问题时,我也遇到了我正在导入的框架的错误: “模块文件是由旧版本的编译器创建的” 这 - 据我了解 - 意味着这个框架需要用当前版本的 XCode 重新编译。
这意味着我必须祈祷我使用的所有框架都是最新的,或者,我也要修复这些?
根本就不能使用“已弃用”的框架吗?
这家 Apple 是不是超级严格地尽可能摆脱任何 Swift1/2 代码?
【问题讨论】:
【参考方案1】:这意味着我必须祈祷我使用的所有框架都是最新的,或者,我也要修复这些?
根本就不能使用“已弃用”的框架吗?
这家 Apple 是不是超级严格地尽可能摆脱任何 Swift1/2 代码?
是的。 Swift 3 就是它。
我为那些不得不将他们的 C 代码转换为 swift 2,而现在 swift 3 即将推出 xD 的人感到难过
希望他们会在最终发布版本中使过渡更容易,并且不久之后所有主要框架都将更新(供您重新编译)。
【讨论】:
【参考方案2】:您需要重新编译框架。即使是像 Carthage 这样的依赖管理器管理的框架(在每个更新命令上重新编译)仍然存在 XCode 8 Betas / Swift 3 的问题:https://github.com/Carthage/Carthage/issues/1440
【讨论】:
以上是关于迁移到 Swift 3 时可以使用旧框架吗?的主要内容,如果未能解决你的问题,请参考以下文章