这个问题过去曾被问过几次,但这些答案似乎都不符合目前的情况。
我有一个应用程序(SwiftUI),可以在模拟器和设备上构建,运行,测试良好。但当试图为iOS和/或MacOS存档时,存档失败,并出现模糊错误"非法指令:4 "。然后,编译器列出了一堆不提供任何帮助的文件和目录。
错误消息片段:
CompileSwift normal arm64 (in target 'App Name' from project 'App Name')
...列出一组目录
error: Illegal instruction: 4 (in target 'App Name' from project 'App Name')
奇怪的是,在XCode和MacOS更新之前,这个应用程序将很好地存档。所以我只能假设在这个最新版本中有些东西被弃用了。
我的问题是:有哪些调试工具可以帮助我开始查找代码中可能发生这种情况的位置?为什么应用可以在模拟器和设备上构建和运行良好,而不能在Archive上构建和运行?对我来说毫无意义。
***我尝试在另一台MacOS 11.0.1和XCode 12.2的MacBook上进行归档测试,它归档正常。虽然,这真的没有用,因为你不能上传用旧版本XCode编译的二进制文件。****我可以使用旧版本Xcode上传二进制文件,不确定它是否会让我发布这个,但我现在会尝试一下。
我考虑过删除并重新安装XCode,但我不知道这是否是浪费时间。也许有些东西没有正确更新?
不知所措。任何见解都很感激。
更新
当我编辑方案,把"存档"从"发布"改为"调试"时,"存档"是?!
我错过了什么?
第二次更新:
当更改构建设置时,在项目、Swift编译器、代码生成、优化级别下,从优化速度-O更改为无优化-Onone,应用程序存档没有问题。
1条答案
按热度按时间pjngdqdw1#
错误消息“非法指令:Xcode中的“4”通常表示由于执行无效或不支持的处理器指令而导致的运行时错误。
出现此错误的原因有多种,包括:
二进制代码与运行应用的设备的处理器架构不兼容。应用的代码存在问题,例如尝试执行不受支持的处理器指令或访问无效的内存位置。iOS或Xcode环境中存在错误。要解决此问题,您可以尝试以下步骤: