我正在将项目更新到 iOS 11/Swift 4。我已更新到 Swift 3.2,并且有一个项目在构建时出现一个警告:“可以转换为 Swift 4”。因此,当询问有关 Swift 4 @objc 推理时,我单击警告并使用“最小化推理”选项启动迁移助手。
构建很快就会失败,并显示以下消息: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 Inference“匹配 Swift 3 行为”,得到了相同的结果。
最佳答案
这似乎是一个 Swift 错误,已在此处提交:https://bugs.swift.org/plugins/servlet/mobile#issue/SR-4646
也就是说,您是否尝试过清理和删除派生数据?
关于swift - 转换为 Swift 4 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46325113/