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

时间:2017-09-20 14:42:33

标签: swift xcode swift4

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

使用以下消息快速构建失败:Command failed due to signal: Segmentation fault: 11

堆栈追踪:

0 swift 0x000000010afabdba PrintStackTraceSignalHandler(void*) + 42 1 swift 0x000000010afab1f6 SignalHandler(int) + 662 2 libsystem_platform.dylib 0x00007fff9ec2bb3a _sigtramp + 26 3 swift 0x000000010a10155a clang::ASTReader::readTypeRecord(unsigned int) + 18634 4 swift 0x00000001085e4ff0 swift::migrator::updateCodeAndEmitRemap(swift::CompilerInstance*, swift::CompilerInvocation const&) + 960 5 swift 0x000000010791b775 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 1925 6 swift 0x0000000107919784 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 7716 7 swift 0x00000001078ce6a8 main + 12248 8 libdyld.dylib 0x00007fff9ea1c235 start + 1

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

更新:我也尝试过Swift 4 @objc推理&#34;匹配Swift 3行为&#34;结果相同。

2 个答案:

答案 0 :(得分:2)

这似乎是一个Swift错误,已在此处提交:https://bugs.swift.org/plugins/servlet/mobile#issue/SR-4646

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

答案 1 :(得分:0)

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