How to resolve Swift compiler error "error: Bus error: 10"?
How to resolve Swift compiler error "error: Bus error: 10"?
在为 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 在这种情况下没有帮助。
经过多次调试、注释掉代码并尝试不同的项目设置后,我发现导致问题的文件是我们用来比较磁盘上文件的 MD5 哈希值:https://github.com/onmyway133/SwiftHash/blob/master/Sources/MD5.swift
从目标中删除该文件(和调用者)会使编译器满意,但这不是一个选项。
同时,我还发现 Swift 5 编译器在将 "Optimization Level" 设置为 "Optimize for Size" 时不会崩溃,所以我们现在将使用该选项。
在为 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 在这种情况下没有帮助。
经过多次调试、注释掉代码并尝试不同的项目设置后,我发现导致问题的文件是我们用来比较磁盘上文件的 MD5 哈希值:https://github.com/onmyway133/SwiftHash/blob/master/Sources/MD5.swift
从目标中删除该文件(和调用者)会使编译器满意,但这不是一个选项。
同时,我还发现 Swift 5 编译器在将 "Optimization Level" 设置为 "Optimize for Size" 时不会崩溃,所以我们现在将使用该选项。