0

我正在玩 Xcode 10 测试版,我注意到在对 Swift 版本号进行编译时检查时,在其构建设置中将Swift 语言版本设置为Swift 4的项目报告为Swift 4.1.50 (测试版 2 、 3 和 4 这样做;我没有机会测试 beta 1)。这让我觉得……很奇怪,至少可以这么说。Xcode 的当前 AppStore 版本 Xcode 9.4.1 报告其版本为Swift 4.1.2

那么... Swift 4.1.3 到 4.1.49 发生了什么?或者这是我应该提交的错误?还是 50 在某种程度上很重要?


您可以使用我的测试文件Swift Version Checker 自行测试


Xcode 10 beta 4 使用上述链接文件检测 Swift 4.1.50 的屏幕截图 终端使用 <code>swift</code> 命令重现错误的屏幕截图

4

1 回答 1

1

根据 Swift bug tracker 上的 Jordan Rose 所说:

这是我们能想到的最不坏的答案,因为如果其中一个存在严重的安全漏洞,我们可能仍会发布更多的 4.1.x 版本。(这种情况以前发生过。)我们需要一个大于任何现有 4.1 版本但仍小于 4.2 的版本号。

我们确实考虑了其他想法,但这是我们为实现最大兼容性而采用的想法。多亏了 SE-0212,我们至少在未来不会遇到这个问题。

所以,我从中得出的结论是,未来某个时候可能仍然需要发布一个实际的 4.1 版本,但这只是 4.1.2 之上的一个安全补丁,所以它的逻辑数字是 4.1.3。同时,Swift 4.2 编译器可以消化的伪 4.1 Swift 需要自己的数字,这也反映了它是 4.1 的方言,他们的结论是 4.1.50,这与 4.1.2 相距足够远,可以容纳尽可能多的他们想要的安全补丁。

于 2018-07-20T15:16:58.493 回答