我更新到Xcode 8,并转换为最新的Swift 3.0语法。我的项目中有很多Cocoapods,有些在Swift 2.3上(例如,一些较旧的Pod要求Alamofire设置为v3.5,该版本运行Swift 2.3)。

我将这些Pod设置为使用Legacy Swift->是,但是在构建时出现错误:

Module complied with Swift 2.3 cannot be imported in Swift 3.0: /Users/....XSDK/XSDK.framework/swiftmodule/x86_64.swiftmodule

我不使用迦太基(在其他问题中引用)。只有 cocoa 足。

我需要将项目转换为使用Swift 2.3吗?还是可以在项目中使用Swift 3.0并仍然使用旧版Cocoapods?

最佳答案

不幸的是,由于Swift并不是ABI稳定版,因此您无法像这样组合 pods 。原因是存在巨大的swift标准库,所有swift pod(以及框架,dylib,.a,.o等)在编译后都需要引用。标准库取决于语言级别,因此您不能在单个应用程序中包含swift标准库的多个副本。

自Swift 3发布以来已经过去了好几个月。在这一点上,您可能想要跳至3。如果您发现尚未更新为3的Pod,则可以将其 fork 并更新并提交公关。作者会爱你的! :)

关于swift - 如何使用Swift 2.3和3.0编译模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39524300/

10-11 23:22
查看更多