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

问题描述 投票:2回答:2

我正在将项目更新到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“Match Swift 3 Behavior”,结果相同。

swift xcode swift4
2个回答
2
投票

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.