我更新到 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
我不使用迦太基(在其他问题中引用)。只有 Cocoapods。
我需要将我的项目转换为使用 Swift 2.3 吗?或者我可以在我的项目中使用 Swift 3.0 并仍然使用旧版 Cocoapods 吗?
最佳答案
不幸的是,由于 Swift 不是 ABI 稳定的,你不能像这样组合 pod。这样做的原因是所有 swift pod(和框架、dylib、.a、.o 等)在编译后都需要引用巨大的 swift 标准库。标准库依赖于语言级别,您不能在单个应用程序中包含多个 swift 标准库副本。
自 swift 3 发布以来已经过了好几个月。此时,您可能想要跳转到 3。如果您发现一个 pod 还没有更新到 swift 3,也许可以 fork 并更新它并提交 pr。作者会爱你的! :)
关于swift - 如何使用 Swift 2.3 和 3.0 编译模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39524300/