背景:
尝试将大型 100k 代码库从 Swift 2.3 升级到 Swift 4。进展良好,修复了 ~1000 错误。然后,在将我们的一个 DTO 对象更改为使用 Any
之后而不是 AnyObject
(因为我们不得不这样做),编译器开始挂起。
问题:
编译应用程序时会到达某个文件并卡住(即使在 24 小时后)。它没有被卡住,只是卡住了编译。我曾尝试临时删除该文件,但它只是卡在另一个文件上,依此类推。
研究与尝试
我已经阅读了编译器以及如何打开警告和标志。我试着看 -Xfrontend -debug-time-function-bodies
和 -Xfrontend Xfrontend -warn-long-expression-type-checking
但什么也没有出现。当我查看文件的构建脚本时,它卡在扩展的脚本中没有任何信息。
你知道我还能检查什么吗?我怀疑它与无法推断类型有关,因为有多少 Any
我们有很多字典,但没有得到更好的信息,我不知道从这里去哪里。
你知道我怎样才能得到关于它为什么卡在这个文件上并且没有给出警告的信息吗?
最佳答案
跟进,花了几天时间,但通过首先转换为 Swift 3.2,然后转换为 Swift 4(注释掉大部分代码以便稍后解决),我能够让它在 Xcode 9 中编译。
关于ios - Xcode 9 编译器卡在文件上,没有警告或错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46712225/