转换为Swift 4时出现分段错误

转换为Swift 4时出现分段错误,swift,xcode,swift4,Swift,Xcode,Swift4,我正在将项目更新为iOS 11/Swift 4。我已经更新到Swift 3.2,并且有一个项目构建时有一个警告:“转换为Swift 4可用”。因此,当被问及Swift 4@objc推理时,我单击警告并使用选项“最小化推理”启动迁移助手 生成很快失败,并显示以下消息:命令失败,原因是信号:分段错误:11 堆栈跟踪: 0 swift 0x000000010afabdba PrintStackTraceSignalHandler(无效*)+42 1 swift 0x000000010afab1f6信号

我正在将项目更新为iOS 11/Swift 4。我已经更新到Swift 3.2,并且有一个项目构建时有一个警告:“转换为Swift 4可用”。因此,当被问及Swift 4@objc推理时,我单击警告并使用选项“最小化推理”启动迁移助手

生成很快失败,并显示以下消息:
命令失败,原因是信号:分段错误:11

堆栈跟踪:

0 swift 0x000000010afabdba PrintStackTraceSignalHandler(无效*)+42
1 swift 0x000000010afab1f6信号处理器(内部)+662
2 libsystem_platform.dylib 0x00007fff9ec2bb3a_sigtramp+26
3 swift 0x000000010a10155a clang::AsReader::readTypeRecord(无符号整数)+18634
4 swift 0x00000001085e4ff0 swift::migrator::UpdateCodeAndItemMap(swift::CompilerInstance*,swift::CompilerIssion const&+960
5 swift 0x000000010791b775性能文件(swift::编译器立场和,swift::编译器职业和,llvm::ArrayRef,int和,swift::FrontendObserver*,swift::UnifiedStatsReporter*)+1925
6 swift 0x0000000107919784 swift::performFrontend(llvm::ArrayRef,char const*,void*,swift::FrontendObserver*)+7716
7 swift 0x00000001078ce6a8干管+12248
8 libdyld.dylib 0x00007fff9ea1c235启动+1

是否有其他人有类似的问题并找到了解决方案


更新:我还尝试了Swift 4@objc推断“匹配Swift 3行为”,结果相同。

这似乎是一个Swift错误,已在此处存档:


也就是说,您是否尝试过清理和删除派生数据?

唯一帮助我的方法(除了分段故障代码11,没有任何导致错误的信息)是禁用整个模块优化(在目标->构建设置下将编译模式设置为单文件)对于所有配置。在您完成转换后,将为Release configs重新启用该设置,或者您可以自己重新启用它。

我遇到了类似的问题。在巨大日志的末尾,它向我展示了代码中失败的方法。你有吗?不确定,在“程序参数”部分?基本上,在我的日志消息中有两部分巨大的文件路径块和一个堆栈跟踪。你在日志中的所有文件路径中找到它了吗?我的路径是在迁移之后,实际上是在做归档。我知道我是如何修复的,所以我可能会让它再次发生。。。但对我来说,它出现在构建日志的错误消息中。啊,好吧,对我来说,实际的编译器正在崩溃。我今天终于解决了这个问题。当我在XCode中更改为推荐的构建设置时,编译器开始在正常构建中崩溃,并将我指向一个函数。然后,我设法以一种不会使编译器崩溃的方式重写了该函数,但做了同样的事情。在使用建议的设置重新构建项目后,转换工具开始工作。