升级Xcode 14后SwiftCompile编译失败求助
Xcode 14编译SILGenCleanup崩溃问题求助
因UI存在Bug,升级至Xcode 14测试iOS 16适配,但项目突然无法编译(降级回Xcode 13.4可正常编译)。已尝试移除并重新添加Swift Package依赖、清理派生数据、重启Xcode及Mac,均未解决问题。
构建错误栈信息:
4. While evaluating request ExecuteSILPipelineRequest(Run pipelines { Mandatory Diagnostic Passes + Enabling Optimization Passes } on SIL for EightUsersUI) 5. While running pass #0 SILModuleTransform "SILGenCleanup". Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it): 0 swift-frontend 0x0000000114b727f7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 39 1 swift-frontend 0x0000000114b71828 llvm::sys::RunSignalHandlers() + 248 2 swift-frontend 0x0000000114b72e10 SignalHandler(int) + 288 3 libsystem_platform.dylib 0x00007ff800d3adfd _sigtramp + 29 4 swift-frontend 0x000000010f98cc0e std::__1::__function::__func<swift::evaluator::PerRequestCache swift::evaluator::PerRequestCache::makeEmpty<swift::ProvideDefaultImplForRequest>()::'lambda'(void*), std::__1::allocator<swift::evaluator::PerRequestCache swift::evaluator::PerRequestCache::makeEmpty<swift::ProvideDefaultImplForRequest>()::'lambda'(void*)>, void (void*)>::operator()(void*&&) + 46 5 swift-frontend 0x000000011028f4b1 swift::CanonicalizeInstruction::canonicalize(swift::SILInstruction*) + 49 6 swift-frontend 0x00000001100fda24 (anonymous namespace)::SILGenCleanup::run() + 388 7 swift-frontend 0x000000011011ed35 swift::SILPassManager::executePassPipelinePlan(swift::SILPipelinePlan const&) + 3077 8 swift-frontend 0x000000011013b8fc swift::SimpleRequest<swift::ExecuteSILPipelineRequest, std::__1::tuple<> (swift::SILPipelineExecutionDescriptor), (swift::RequestFlags)1>::evaluateRequest(swift::ExecuteSILPipelineRequest const&, swift::Evaluator&) + 60 9 swift-frontend 0x0000000110127e69 llvm::Expected<swift::ExecuteSILPipelineRequest::OutputType> swift::Evaluator::getResultUncached<swift::ExecuteSILPipelineRequest>(swift::ExecuteSILPipelineRequest const&) + 537 10 swift-frontend 0x0000000110129f3b swift::runSILDiagnosticPasses(swift::SILModule&) + 187 11 swift-frontend 0x000000010f7ae551 swift::CompilerInstance::performSILProcessing(swift::SILModule*) + 65 12 swift-frontend 0x000000010f72f6c6 performCompileStepsPostSILGen(swift::CompilerInstance&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, int&, swift::FrontendObserver*) + 1110 13 swift-frontend 0x000000010f7319b5 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 5701 14 swift-frontend 0x000000010f6c78ea swift::mainEntry(int, char const**) + 3082 15 dyld 0x00000001258d852e start + 462 Command SwiftCompile failed with a nonzero exit code
可能的解决方向:
- 排查项目中自定义属性包装器、复杂泛型、函数式语法,这类代码易触发Swift 5.7(Xcode14默认版本)的SIL优化阶段Bug
- 临时调整优化级别:在Build Settings中找到
Optimization Level,Debug模式设为No Optimization [-Onone],Release模式将Fast, Whole Module Optimization改为Fast, Single-File Optimization - 定位可疑代码:注释掉近期新增的Swift代码(尤其是涉及可选链嵌套、Result类型、闭包捕获变量的部分),逐步编译排查
- 更新所有Swift Package依赖到最新版本,部分第三方库可能存在Xcode14兼容问题
- 尝试新建Xcode14项目,逐步迁移原项目代码与依赖,判断是配置问题还是代码兼容问题
- 若确认是编译器Bug,可向Apple反馈中心提交报告,同时保留Xcode13.4作为临时开发环境
内容的提问来源于stack exchange,提问作者xplat
相关产品推荐
相关产品推荐

