ios - 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 日创建的。
编辑:我也尝试将发布的优化设置更改为“无” - 结果相同。
解决方案
尝试禁用/启用整个模块优化或将自定义构建设置 SWIFT_ENABLE_BATCH_MODE 设置为 NO
推荐阅读
- python - 从构造函数或文字创建集合时 Python 中的不同行为
- django - Django REST 测试 - 如何指定引用 setUp 函数中创建的模型实例的 pk 参数
- routes - 以前的路线显示在 Sapper 的当前路线中
- mysql - DELETE FROM mytable WHERE column LIKE '%word%' 问题
- java - Whitelabel 错误页面:带有 Eclipse 的 Spring Boot 应用程序
- sql - VB6 ADODB.Recordset Record.Count 不起作用/EOF 和 BOF 不可用
- python - 以 ftp 活动模式列出文件
- javascript - 如何在 zingchart 的每个饼图中使用 svg 图标?
- python - Python:JSON 未读取“&”字符
- amazon-web-services - AWS Batch - 访问被拒绝 403