2017-10-10 58 views
2

在斯威夫特博客https://developer.apple.com/swift/blog/?id=2从2014年7月11日,它指出:依赖使用Swift的二进制框架仍然“危险”吗?

“如果你的项目使用的框架与嵌入式 扩展共享代码,你将要构建的框架,应用和扩展 如果依赖于二进制框架,使用Swift(尤其是来自第三方)是非常危险的,当Swift发生变化时,那些 框架将与您的应用程序的其余部分不兼容,当 二进制界面在一两年内稳定后, Swift运行时将 成为主机操作系统的一部分,并且此限制将不再存在。“

现在已经差不多3.5年,这超过了“一年或两年”。 Xcode 9,iOS 11和Swift 4是目前的标准。这仍然是真的吗?如果是这样,预计这种情况何时会发生变化?

我想将SDK从Objective-C转换为Swift,它需要作为二进制文件分发(至少部分)。

...

更新:我发现这个https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160725/025676.html下 “可能斯威夫特4第2倍阶段的努力” 的规定:

“ - .swiftmodule稳定性:在某些时候,我们需要稳定 “.swiftmodule”二进制文件格式(或将其替换为不同的 机制)以允许使用第三方二进制框架。这是一个非常大的工作量,超过 所需的ABI稳定性rd库“。

这是否回答我自己的问题?我们现在在哪里?

回答

2

每一个answer provided by Apple

是它仍然是 “危险的依赖于使用SWIFT二元框架”?

是的。

这个东西很复杂,因此I’m将按照细节Swift ABI Stability Manifesto。然而,内容提要是:

  • ABI稳定性,计划于5斯威夫特(见this page
  • 模块格式的稳定性仍然没有一个目标日期
  • 分发二进制框架无俩是一个坏想法