为什么收到控制台警告:当我在iOS13.2中加载WKWebView时,[Process] kill()返回意外错误1?

时间:2019-10-10 10:44:31

标签: ios objective-c wkwebview

自从我安装了 iOS 13.2 beta 以来,一直收到调试控制台错误消息。每当我在情节提要中加载带有WKWebView对象的ViewController时,就会发生这种情况。

然后在显示Web视图时连续显示以下消息 ...

2019-10-10 12:10:47.867830+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:47.908698+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:47.908814+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:47.934169+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:47.947668+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:47.964375+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:48.193556+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:48.193723+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:48.193941+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:48.194012+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:48.195679+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:48.200432+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:48.207225+0200 (...) [Process] kill() returned unexpected error 1  
2019-10-10 12:10:48.207298+0200 (...) [Process] kill() returned unexpected error 1 

目前,我关闭视图时会收到以下消息:

2019-10-10 12:32:41.577505+0200 (...)[ProcessSuspension] 0x1051e50b0 - ProcessAssertion::processAssertionWasInvalidated() 

有时,在加载Web视图时,中间会收到以下消息:(我不能说它何时发生)

2019-10-10 12:33:11.453528+0200 (...) Could not signal service com.apple.WebKit.WebContent: 113: Could not find specified service
2019-10-10 12:33:11.459713+0200 (...) Could not signal service com.apple.WebKit.Networking: 113: Could not find specified service

如果我触摸屏幕,它将再次开始

    2019-10-10 12:10:48.200432+0200 (...) [Process] kill() returned unexpected error 1  
    2019-10-10 12:10:48.207225+0200 (...) [Process] kill() returned unexpected error 1  
    2019-10-10 12:10:48.207298+0200 (...) [Process] kill() returned unexpected error 1 
...

我检查了应用程序的WKWebViews是否在所有视图控制器中都发生了这种情况,因此这似乎不是代码错误。

不会导致应用崩溃和,但是我想知道为什么会这样,以及其他人是否遇到了同样的问题。

10 个答案:

答案 0 :(得分:69)

这是WebKit(或底层操作系统本身)中的错误。 不,它没有在13. [2,3]版本中修复。

请参阅:

答案 1 :(得分:21)

在最新的iOS 13.3版本中未修复

答案 2 :(得分:15)

与已接受的答案一样,这是一个WebKit错误,似乎已经修复,但直到最新的iOS版本13.2.2(在编写此答案时)才发布。

不过,作为一种解决方法,您可以按照an answer by @iDevzilla中所述暂时禁用/隐藏日志:

1-从Xcode菜单中打开:“产品”>“方案”>“编辑方案”

2-在您的环境变量上设置OS_ACTIVITY_MODE = disable

enter image description here

这只会隐藏日志,因此您可以继续在iOS上进行开发和测试。正如某些人指出的那样,无论如何,此问题都会使他们的应用程序崩溃(对我而言,直到现在)。另外,请谨慎使用此方法,因为它可能会隐藏重要的错误消息!

答案 3 :(得分:6)

iOS 13.4已删除此错误!哇!

答案 4 :(得分:3)

我将预先承认这是一个糟糕的“答案”,但这是有效的观察。这与沙箱有关。如果您在没有沙箱的情况下重建应用程序,则不会显示任何消息。如果您打开沙盒并启用“传出连接”(这是我的应用程序所需的全部操作),则Webkit中的每个鼠标事件都会给我带来不愉快的消息。

如果我也包括“传入连接”(作为测试),则显示相同的消息。

删除沙箱(仅供内部使用的应用程序),没有愚蠢的消息。也许这一观察结果将帮助苹果公司的某人进一步追踪这个问题。

答案 5 :(得分:3)

截至2020年3月28日的更新

最后,Apple部署了一些东西,不仅不显示日志中的错误,而且实际上允许我们这样做。开发人员来编译,运行和提交应用程序。

特别是,如果您附带的是Cordova / PhoneGap应用程序,并且它与要在iOS上作为Web包装程序运行的任何HTML5 / JavaScript框架/游戏(Ionic / Phaser)结合使用(我的个人经历), WebView。但是,不确定是否将同一问题应用于NativeScript / React Native或Native Java / Kotlin / Swift-这些不需要网络包装即可运行。

没关系,请将您的iPhone / iPad更新到iOS 13.4 和(!!) Xcode到11.4 。两者都已于3天前发布,可以确认我的Cordova包装的应用不再具有日志并且不会崩溃。

出于历史原因,我将写一个便笺-受影响的iOS版本为:13.2.X,13.3.X(包括Beta)。如果您在一段时间后阅读此书,则需要通过升级到高于13.3的版本(推荐)或降级到低于13.2的版本(不推荐)来摆脱那些麻烦。仅当Apple由于某些原因阻止您进行进一步更新(例如,您的iPad / iPhone会真的很旧。

答案 6 :(得分:2)

对于另外两个macOS开发人员:macOS 10.15.2中的未修复

答案 7 :(得分:2)

我真的不知道为什么会影响它,但是嘿\ _(ツ)_ /¯

我正在使用Firebase-这是我的Podfile中的一行:

pod 'Firebase/DynamicLinks'

删除后,我不再得到这些日志。很奇怪,但是我想你现在还不需要这个吊舱。

对于其他知道的豆荚来说,这也可能是个问题。

我在Podfile中有这行代码,用于我尚未实现的功能,但是直到获得完整的Apple Developer Membership帐户后才能这样做。

答案 8 :(得分:1)

请注意,您必须同时在设备上使用iOS 13.4Xcode 11.4,否则,您仍然会看到日志。

答案 9 :(得分:-1)

临时解决方法:

  

这对我来说可以继续本地发展。一点点   烦人每次都必须这样做,但这似乎是唯一的方法   现在。

  1. 将iPhone或iPad连接到Mac
  2. 从xcode运行您的应用
  3. 打开野生动物园并转到“开发”标签

如果找不到“开发”标签,请转到“偏好设置”>“高级”>“在菜单栏中显示开发菜单”

  1. 单击“开发”>在我的情况下为“ Philip's iPhone”连接的设备

然后,“ Philip's iPhone”选项卡将显示运行WkWebView进程的所有应用程序。就我而言,该选项是悬停在“ Philip's iPhone”上的第一个选项

  1. 单击该选项 这将打开Safari的检查器。
  2. 在Safari检查器中找到“控制台”标签
  3. 键入window.location.assign("http://url.com")并按Enter键

Voilá– WkWebView现在将刷新到您指定的URL

  • 如果要进行本地开发,请确保iOS设备和计算机连接到同一网络。

  • 如果您要在线访问页面,请确保iOS设备已连接到互联网。