ios - Xcode 10.2 iOS Swift (+ React Native) 项目编译错误
问题描述
升级到 Xcode 10.2 后,我们无法再编译项目了。我们得到了这个编译错误。看起来像非常有线的 LLVM 编译器错误。据我所知,这不是 React Native 问题,但我什至无法想象如何调试此错误,整个 Internet 上都没有关于此的信息。
可能有人对此有所了解吗?或者至少如何调试它?谢谢。
- 斯威夫特 4.2
- React Native 0.59.3(最新)
- Xcode 10.2
错误:
LLVM ERROR: out of memory
Stack dump:
0. Program arguments: <....>
1. While emitting IR SIL function "@$sypSgIegn_Ieg_TR".
for <<debugloc at "<compiler-generated>":0:0>>0 swift 0x000000010b99eee3 PrintStackTraceSignalHandler(void*) + 51
1 swift 0x000000010b99e6bc SignalHandler(int) + 348
2 libsystem_platform.dylib 0x00007fff697f1b3d _sigtramp + 29
3 libsystem_platform.dylib 0x00007ffee848cee0 _sigtramp + 2127147968
4 libsystem_c.dylib 0x00007fff696af1c9 abort + 127
5 swift 0x000000010b94f644 llvm::report_bad_alloc_error(char const*, bool) + 100
6 swift 0x000000010786d210 swift::irgen::CallEmission::setArgs(swift::irgen::Explosion&, bool, swift::irgen::WitnessMetadata*) + 2560
7 swift 0x0000000107a21335 (anonymous namespace)::IRGenSILFunction::visitFullApplySite(swift::FullApplySite) + 2053
8 swift 0x0000000107a016aa swift::irgen::IRGenModule::emitSILFunction(swift::SILFunction*) + 9898
9 swift 0x00000001078c0259 swift::irgen::IRGenerator::emitLazyDefinitions() + 1353
10 swift 0x00000001079e1250 performIRGeneration(swift::IRGenOptions&, swift::ModuleDecl*, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::StringRef, swift::PrimarySpecificPaths const&, llvm::LLVMContext&, swift::SourceFile*, llvm::GlobalVariable**) + 1232
11 swift 0x00000001078030b9 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 49417
12 swift 0x00000001077f36de swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 6862
13 swift 0x00000001077917be main + 1246
14 libdyld.dylib 0x00007fff69606ed9 start + 1
15 libdyld.dylib 0x000000000000010f start + 2527040055
error: Abort trap: 6
解决方案
这在某种程度上是不支持语法的错误报告¯_(ツ)_/¯ 特别是在我们的案例中,问题出现在 Swift 5 的新规则中(但我们使用的是 Swift 4!):
在 Swift 5 模式下,@autoclosure 参数不能再转发到另一个函数调用中的 @autoclosure 参数。
所以我们改变了:
completionHandler: resolver -> completionHandler: { resolver(nil) }
当切换到 Swift 5 并且 XCode 报告了它时,我们发现了这个问题。然后我们用这个修复切换回 Swift 4,一切正常。
推荐阅读
- java - 在 Spring Boot 中自定义 @Cacheble
- amazon-web-services - 公共子网中的 NAT 网关和 EC2 实例能否共享同一个 AWS ElasticIP?
- python - 没有名为“polyglot.text”的模块;'polyglot' 不是一个包
- python - 从 SQLite3 表向叶图添加标记
- javascript - Instagram 如何缩小 CSS?
- mysql - 每月/每年计算不同但在查询结果中显示所有日期
- json - ManualJournals LineAmounts 是否必须等于零?Xero-API
- angular - 使用 Sass 而不是 Less 配置 NG-Zorro
- php - 使用 PHP 计算 JSON 值
- php - 是否可以将特定域流量重定向到辅助本地 IP?