Ошибка компиляции проекта Xcode 10.2 iOS Swift (+ React Native) - PullRequest
1 голос
/ 02 апреля 2019

После обновления до Xcode 10.2 мы больше не можем компилировать проект. Мы получили ошибки компиляции. Похоже, очень проволочная ошибка компилятора LLVM. Насколько я понимаю, это не проблема React Native, но я даже не представляю, как отладить эту ошибку, об этом нет информации во всем Интернете.

Может быть, кто-то что-то знает об этом? Или хотя бы как это отладить? Спасибо.

  • Swift 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

1 Ответ

1 голос
/ 02 апреля 2019

Это как-то сообщение об ошибке неподдерживаемого синтаксиса ¯_ (ツ) _ / ¯ В частности, в нашем случае проблема заключалась в новом правиле для Swift 5 (но мы были на Swift 4!):

В режиме Swift 5 параметры @autoclosure больше нельзя пересылать в аргументы @autoclosure при другом вызове функции.

Итак, мы изменились:

completionHandler: resolver  -> completionHandler: { resolver(nil) }

Мы обнаружили эту проблему, когда переключились на Swift 5 и XCode сообщил об этом. Затем мы вернулись к Swift 4 с этим исправлением, и все заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...