WKWebView 在调试时调用 iOS 10 中的任何 javascript 时出错

WKWebView error calling any javascript in iOS 10 while debugging

仅在 iOS 10 中发生的有趣错误,在物理设备上进行调试时。它不会发生在模拟器中,也不会发生在物理设备上 运行 时(不调试时)。在任何情况下,它也不会发生在 iOS 9 设备上......只有 iOS 10 在调试时和执行任何 javascript 调用之后。

我有一个混合网络应用程序,用 Swift 2.3 编写,在 xwebview 加载后我调用各种 javascript 方法...实际上,在这种情况下,任何方法。无论如何,在 javascript 方法完成后,我收到一个 malloc 错误,提示我正在尝试释放一个指针。

malloc: *** error for object 0x1740b5060: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

所以我设置了断点...它从不在断点处中断,它只是一直告诉我设置断点。

如果我删除所有 javascript 调用,错误就不会发生。我试过一个一个启用它们,没关系,它们都在回调后中断returns。

我已经用了大约 2 周了,我已经没有多余的头发可以拔了。在这一点上,我很想知道是否有人看到了同样的事情。

它看起来像是一个 safari 错误,因此只有在您使用 safari 调试 webview 时才会出现。在 Safari 下的 Develop->Your_Device_Name uncheck "Automatically Show Web Inspector for JSContexts"。 这应该可以解决您的问题。