1

我正在尝试在使用 Swift 4.2 的项目中使用 SwiftyDropbox 框架,但 SwiftyDropbox 仍在使用 Swift 3。如何使用以前的 Swift 版本包含库或框架?

4

2 回答 2

2

Xcode 不提供默认选项来编译特定 Swift 版本的模块。您可以在 Swift 3 或 4+ 中编译整个项目。因此,要解决您的问题,您必须使用 cocoapods。配置 pod 后,您可以制作单个 pod 以使用特定的 Swift 版本进行编译。

  1. 打开 .xcworkspace
  2. 选择 Pods.xcproj
  3. 在 RHS 上,在“目标”下,选择“SwiftyDropbox”。
  4. 导航到“构建设置”并搜索“Swift 语言版本” 在此处输入图像描述
  5. 将版本更改为“Swift 3”。
  6. 删除“派生数据”和“清理项目”。
  7. 最后,构建,你不会看到任何错误。
于 2018-10-25T05:26:56.587 回答
0

我不是这方面的专家,也没有尝试过,但这是我的理解:如果您将应用程序拆分为多个框架,则您的一个或多个框架可以针对 Swift 3,而其他框架针对 Swift 4.2。然后,您的 Swift 3 框架可以引用您要使用的第三方 Swift 3 框架。

我猜 Xcode 会正确处理您自己的框架之间的绑定,这些框架在 Swift 版本中有所不同,因为您自己将它们编译为目标依赖项。

最后,如果第三方框架是开源的,并且相当小,可以考虑将其分叉并自己将其升级到 Swift 4.2。我已经为我使用的一些较小的框架(例如 Netfox)采用了这种方法 - 像 Realm 这样的较大的框架我只需要等待他们这样做。

于 2018-10-24T18:31:50.187 回答