我正在将项目更新到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;结果相同。
答案 0 :(得分:2)
这似乎是一个Swift错误,已在此处提交:https://bugs.swift.org/plugins/servlet/mobile#issue/SR-4646
那就是说,您是否尝试过清理和删除派生数据?
答案 1 :(得分:0)
唯一对我有帮助的(除了分段错误代码11之外,没有任何信息可导致错误)是禁用整个模块优化(将“编译模式”设置为“目标”下的单个文件) ->所有设置的构建设置。在完成转换后,该设置将为Release配置重新启用,或者您可以自己重新启用。