用 Swift 4.0 编译的模块无法在 Swift 3.2.1 中导入

Module compiled with Swift 4.0 cannot be imported in Swift 3.2.1

Swift 4.0 模块在 Swift 3.2 应用程序中很好用 Xcode 9.0.

但是现在,使用 Xcode 9.1,我得到:

Module compiled with Swift 4.0 cannot be imported in Swift 3.2.1

或者:

Module compiled with Swift 4.0 cannot be imported in Swift 4.0.1

Swift 4.0 仅与 Swift 3.2 兼容。
Swift 4.0.1 仅与 Swift 3.2.1 兼容。

所以:

  • 不能混用 4.0 和 3.2.1
  • 不能混用 4.0.1 和 3.2
  • 不能混用 4.0 和 4.0.1
  • 不能混用 3.2.1 和 3.2

以不同的方式表述:

  • 您可以将 Xcode 9.0 支持的 Swift 版本混合在一起
  • 您可以将 Xcode 9.1 支持的 Swift 版本混合在一起
  • 您不能混合使用 Xcode 9.0 和 Xcode 9.1 Swift 版本

如果该模块是您构建的,只需使用相同的 Xcode 重新构建它即可。
如果模块是由第三方构建的,请请求 Xcode 9.1 兼容构建。

可以在 Xcode 9.1 beta 2 中使用 Swift 3.2 进行构建,方法是安装 Xcode 9.0 toolchain 并使用它来构建项目。

然后在 Xcode -> Toolchains 菜单下选择 Swift 4.0 版本。

您现在应该能够在 Xcode 9.1 b2 中使用 Swift 3.2 或 4.0 进行构建。

使用最后一个 Xcode 版本解决了这个问题