Как устранить ошибку компилятора Swift "ошибка: ошибка шины: 10"? - PullRequest
0 голосов
/ 04 апреля 2019

Возникла проблема при сборке для выпуска Apple Watch любой платформы Apple с xcodebuild из командной строки с Xcode 10.2 и Swift 5.

$ xcodebuild -scheme MyApp-watchOS -configuration Release -destination 'OS=latest,name=Apple Watch Series 2 - 38mm' build analyze

[...]

error: Bus error: 10

<unknown>:0: error: unable to execute command: Bus error: 10
<unknown>:0: error: compile command failed due to signal 10 (use -v to see invocation)

[...]

The following build commands failed:
    CompileSwift normal i386
    CompileSwiftSources normal i386 com.apple.xcode.tools.swift.compiler
(2 failures)

Я пробовалс разными симуляторами, но ошибка сохраняется, как для команд build, так и analyze.

Сборка из XCode работает нормально в модели отладки, но не работает в режиме выпуска.

CompileSwiftSources normal i386 com.apple.xcode.tools.swift.compiler (in target: MyApp-watchOS)
[...]
<unknown>:0: error: unable to execute command: Illegal instruction: 4
<unknown>:0: error: compile command failed due to signal 4 (use -v to see invocation)

и

CompileSwift normal i386 (in target: MyApp-watchOS)
[...]
error: Illegal instruction: 4

Очистка DerivedData в этом случае не помогла.

1 Ответ

0 голосов
/ 05 апреля 2019

После долгих отладок, закомментирования кода и проб разных настроек проекта я обнаружил, что причиной проблемы является файл MD5, который мы используем для сравнения файлов на диске: https://github.com/onmyway133/SwiftHash/blob/master/Sources/MD5.swift

Удаление этого файла (и вызывающих) из цели делает компилятор счастливым, но это не вариант.

Между тем, я также обнаружил, что компилятор Swift 5 не дает сбоя при установке «Оптимизации уровня» на «Оптимизация по размеру», поэтому мы пока воспользуемся этой опцией.

...