【问题标题】:Swift keyboard extension SIGQUIT, Execution was interrupted, reason: EXC_BREAKPOINTSwift 键盘扩展 SIGQUIT,执行被中断,原因:EXC_BREAKPOINT
【发布时间】:2017-05-06 17:28:33
【问题描述】:

当我尝试构建和运行我的键盘扩展时,它有时会崩溃并显示 Thread 1: signal SIGQUIT。

我无法重现该错误。有时我可以构建和运行我的应用程序,但大多数时候键盘只是退出。这发生在实际设备上。在模拟器中它没有打开我的键盘并说Waiting to Attach。

控制台一开始不输出任何错误。但是,如果我在 Debug navigator 中将下拉菜单更改为 View UI Hierachy,我会得到以下描述:

Details:  No plist data for fetching view hierarchy: error evaluating expression “(id)[(Class)objc_getClass("DBGViewDebuggerSupport_iOS") fetchViewHierarchyWithOptions:(id)[(Class)objc_getClass("NSDictionary") dictionaryWithObjects:(id)[(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:(id)[(Class)objc_getClass("NSNumber") numberWithBool:1]] arrayByAddingObject:(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:@"_UIVisualEffectBackdropView"] arrayByAddingObject:@"_UIBackdropEffectView"]] arrayByAddingObject:(id)[(Class)objc_getClass("NSNumber") numberWithBool:0]] forKeys:(id)[(id)[(id)[(Class)objc_getClass("NSArray") arrayWithObject:@"DBGViewDebuggerUseLayersAsSnapshots"] arrayByAddingObject:@"DBGViewDebuggerEffectViewsToSnapshotAsImage"] arrayByAddingObject:@"DBGViewDebuggerAlwaysEncodeLayers"]]]”: error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18daddc34).
The process has been returned to the state before expression evaluation.

Method:   -[DBGAbstractViewDescriber handleFetchedViewInfo:fetchError:resultHandler:]
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.

我还对过程进行了截图。

我是不是做错了什么?如何防止我的键盘扩展在运行时一直退出?它实际上是描述中所说的错误吗?

【问题讨论】:

  • 得到了同样的结果。从谷歌来看——这个错误似乎是最近才出现的。似乎是 XCode 8.2.1 问题
  • 不幸的是,同样的事情发生在我身上
  • 我也深受其害。有人找到解决方案了吗?
  • 我也是,这两个答案对我没有任何解决方案?

标签: ios swift custom-keyboard


【解决方案1】:

免责声明

xCode 8.2.1 中的某些内容似乎已损坏,调试器未正确附加到正确的进程或托管进程未正确加载新代码。

这不是永久解决方案,而是临时解决方法。

解决方法

按照以下步骤,我已经能够解决此问题。

  1. 终止所有正在使用键盘的进程(重要!)
  2. 使用调试器启动应用程序,以便将最新代码部署到设备
  3. 导航到设置 > 常规 > 键盘 > 等。
  4. 移除您的自定义键盘
  5. 重新添加您的自定义键盘
  6. 再次调试应用程序

之所以可行,是因为移除键盘会终止托管扩展程序的进程,从而允许 Xcode 附加到新的二进制文件。

【讨论】:

  • 当你说杀死任何正在使用你键盘的进程时,你是怎么做到的?
  • 关闭所有使用键盘的应用程序。
【解决方案2】:

据我了解,这是 Xcode 8.2.1 中的一个错误。因为在更新之前,我的自定义键盘运行良好。 这是一个临时解决方案。

  1. 像往常一样运行您的代码!
  2. 调起键盘直到出现错误 (SIGQUIT)!
  3. 转到 xcode > 调试 > 分离
  4. 再次转到 Xcode > 调试 > 附加到进程:附加键盘(应该是第一个进程)

现在,您的断点将起作用。但不幸的是没有日志输出!我希望它能暂时解决您的问题

【讨论】:

  • 为我工作。谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-12-26
  • 2017-02-25
  • 2021-02-18
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多