我们面临着"中止陷阱6";在Xcode 12中。由于这个原因,应用程序没有使用Xcode 12运行。我们使用的是swift 5版本和jsqmessageviewcontroller目标c库。下面是Xcode 12中的错误。
<unknown>:0: error: fatal error encountered while reading from module 'wwww'; please file a bug report with your project and the crash log
<unknown>:0: note: module 'wwww' full misc version is '5.3.2(5.3.2)/Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28)'
top-level value not found
Cross-reference to module 'JSQMessagesViewController'
... JSQMessageMediaData
error: Abort trap: 6 (in target 'zapwww' from project 'zapwww')
如果有人有解决方案,请帮助我们。
我在Xcode 12.5.1中遇到了同样的错误,这似乎是一个在下一个测试版中修复的错误。然而,似乎有几个问题可能导致此错误。所以我的解决方案可能不起作用。
对我来说,这个问题非常具体,只发生在以下情况下:
- 调用一个返回可选RealmObject(在您的情况下可能不同(的方法
- 已为返回的RealmObject分配了一个变量
- 尝试使用guard-let或if let对新的安全展开的变量使用相同的名称来展开变量
最简单的修复方法是使用不同的变量名或直接安全地展开返回的对象,而不为其分配变量
在我的案例中导致错误的示例:
class MyClass {
func returnObject() -> Object? {
return nil
}
func anyMethod() {
let myObject = returnObject()
guard let myObject = myObject else { return } // <-- works anywhere else but here.
}
}
在我的案例中修复错误的相同示例:
class MyClass {
func returnObject() -> Object? {
return nil
}
func anyMethod() {
let myObject = returnObject()
guard let myNewObject = myObject else { return } // <-- Changed name of new variable here
}
}
我见过其他类型的人有这个问题,所以它并不局限于RealmObject类型。但是,使用相同的变量名遍历所有guard-let或iflet是一个良好的开端。
我也见过其他人通过清理构建文件夹或删除软件包并重新安装来修复它。但这对我没有帮助。
问题:中止陷阱(在我的情况下,我的代码运行得很好,但当我试图制作存档文件时,我得到了"中止陷阱"(
解决方案:-只需从项目导航栏(最左侧窗格(选择项目>选择目标>生成设置>Swift编译器-代码生成>优化级别>调试和Realease使";无优化[-Onone]";在此处输入图像描述
特定颤振
对于Pods目标,我必须将Optimization Level
设置为No Optimization [-Onone]
。
只需从项目中选择您的项目导航器(最左侧窗格(选择Pods > Build Settings > Swift Compiler - Code Generation > Optimization Level > Debug and Realease
制作No Optimization [-Onone]
对我来说,我刚刚从pods文件中删除了导致问题的库,然后再次安装将修复问题
只需要运行:"pod update"来更新我的Realm pod并为我修复它。