首页 > 解决方案 > Xcode 11.5 (11E608c) - Swift 5.2.4 非法指令:4

问题描述

我在通过 Xcode 归档我的 Swift 代码时遇到问题。我不断收到“错误。非法指令:4”

编辑:快速澄清 - 它在我的设备的调试中构建和运行良好。它不会为发布而构建(存档)

我的第一个错误是在我通过 Carthage 构建的一个依赖项中。试图通过 carthage 更新所有依赖项,他们都在做同样的事情 - “错误。非法指令:4”

这是我手动构建并添加的依赖项中的一个错误:

1.  Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)
0  swift                    0x00000001133084ea PrintStackTraceSignalHandler(void*) + 42
1  swift                    0x0000000113307cc0 SignalHandler(int) + 352
2  libsystem_platform.dylib 0x00007fff7299e5fd _sigtramp + 29
3  libsystem_platform.dylib 000000000000000000 _sigtramp + 2372278816
4  swift                    0x000000010f0507d7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 9799
5  swift                    0x000000010efd1b73 main + 1283
6  libdyld.dylib            0x00007fff727a5cc9 start + 1
error: Illegal instruction: 4 (in target 'libsignal-protocol-swift iOS' from project 'libsignal-protocol-swift')

这是另一个来自通过 carthage 构建的不同依赖项的依赖项:

139 1.      Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)
140 0  swift                    0x00000001070674ea PrintStackTraceSignalHandler(void*) + 42
141 1  swift                    0x0000000107066cc0 SignalHandler(int) + 352
142 2  libsystem_platform.dylib 0x00007fff7299e5fd _sigtramp + 29
143 3  libsystem_platform.dylib 000000000000000000 _sigtramp + 2372278816
144 4  swift                    0x0000000102daf7d7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void    *, swift::FrontendObserver*) + 9799
145 5  swift                    0x0000000102d30b73 main + 1283
146 6  libdyld.dylib            0x00007fff727a5cc9 start + 1
147 error: Illegal instruction: 4 (in target 'DynamicButton' from project 'DynamicButtonExample')

再次从 xcode 尝试构建我的代码:

1.  Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)
0  swift                    0x000000010aeaf4ea PrintStackTraceSignalHandler(void*) + 42
1  swift                    0x000000010aeaecc0 SignalHandler(int) + 352
2  libsystem_platform.dylib 0x00007fff7299e5fd _sigtramp + 29
3  libsystem_platform.dylib 000000000000000000 _sigtramp + 2372278816
4  swift                    0x0000000106bf77d7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 9799
5  swift                    0x0000000106b78b73 main + 1283
6  libdyld.dylib            0x00007fff727a5cc9 start + 1
error: Illegal instruction: 4 (in target 'Assistant' from project 'CareApp')

我完全不知道发生了什么。我已经重新启动,清除了 DerivedData,清除了构建文件夹等。

无论是通过 xcode 还是命令行构建(carthage 通过命令行构建),所有错误都完全相同

我认为这是 Swift 5.2.4 的问题?我最后一次成功存档是 2020 年 5 月 26 日。我现在正在运行 Swift 5.2.4,根据我的计算机,它是在 2020 年 5 月 27 日创建的。

编辑:我也尝试将发布的优化设置更改为“无” - 结果相同。

标签: iosswiftxcode

解决方案


尝试禁用/启用整个模块优化或将自定义构建设置 SWIFT_ENABLE_BATCH_MODE 设置为 NO


推荐阅读