为什么我收到控制台警告:当我在 iOS13.2 中加载 WKWebView 时,[Process] kill() 返回了意外错误 1?
Why I get the console warning: [Process] kill() returned unexpected error 1 when I load a WKWebView in iOS13.2?
自从我安装了 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 的视图控制器中都发生了这种情况,所以这似乎不是代码错误。
这 不会使应用程序崩溃 ,但我想知道为什么会发生这种情况,以及其他人是否遇到同样的问题。
这是 WebKit(或底层 OS 本身)中的错误。
不,它 未 在 13.[2,3] 版本中修复。
参见:
- https://bugs.webkit.org/show_bug.cgi?id=202173
- https://www.mail-archive.com/webkit-changes@lists.webkit.org/msg146193.html
更新:
它已在 13.4 版本中修复。
如已接受的答案,这是一个 WebKit 错误,似乎已修复但直到最新的 iOS 版本 13.2.2(当时写这个答案) 已在 iOS 13.4.
中修复
但是,作为一种变通方法,您可以暂时 disable/hide 日志,如 中所述:
1- 从 Xcode 菜单打开:产品 > 方案 > 编辑方案
2- 在您的环境变量上设置 OS_ACTIVITY_MODE
= disable
这只会隐藏日志,以便您可以在 iOS 上继续开发和测试。正如一些人指出的那样,这个问题无论如何都会导致他们的应用程序崩溃(对我来说直到现在才崩溃)。另外,请小心使用此方法,因为它可能会隐藏重要的错误消息!
我真的不知道为什么这会影响它,但是嘿¯\_(ツ)_/¯
我正在使用 Firebase
- 我的 Podfile 中有一行:
pod 'Firebase/DynamicLinks'
删除后,我不再收到这些日志。奇怪,但我想如果你现在还不需要这个 pod,它就可以工作。
这可能也是其他 pods 的问题,谁知道呢。
我的 Podfile 中有该行用于我尚未实现的功能,但在我获得完整的 Apple 开发者会员帐户之前不能。
我预先承认这很糟糕 "answer" 但这是一个有效的观察。这与沙盒有关。如果您在没有沙箱的情况下重建您的应用程序,则不会有任何消息。如果您打开沙箱并启用我的应用程序所需的所有传出连接,webkit 中的每个鼠标事件都会给我不愉快的消息。
如果我还包括传入连接,作为测试,相同的消息。
删除沙盒(仅供内部使用的应用程序),没有愚蠢的消息。也许这个观察会帮助 Apple 的某个人进一步追踪这个问题。
iOS 13.4 已删除此错误!万岁!
更新于 2020 年 3 月 28 日
Apple终于部署了一些东西,它不仅没有在日志中显示错误,而且实际上允许我们;开发人员编译,运行 并提交申请。
特别是,如果您要将 Cordova/PhoneGap 应用程序与任何想要 运行 HTML5/JavaScript framework/game (Ionic/Phaser) 的应用程序结合使用
=40=] 通过使用 WebView 作为 web 包装器(我个人与此问题相关的经验)。但是,不确定相同的问题是否适用于 NativeScript/React 本机或本机 Java/Kotlin/Swift - 这些不需要 Web 包装器到 运行。
没关系,请将您的 iPhone/iPad 更新为 iOS 13.4 和 (!!)Xcode 到 11.4。它们都是 3 天前发布的,可以确认我的 Cordova 封装的应用程序不再有日志并且不会崩溃。
由于历史原因,我会写一条注释 - 受影响的 iOS 版本是:13.2.X、13.3.X,包括其测试版。如果您在一段时间后阅读本文 - 您需要通过升级到高于 13.3 的版本(推荐)或降级到低于 13.2 的版本(不推荐)来摆脱这些。仅当 Apple 出于某种原因阻止您进行进一步更新时,您才可以使用第二个选项,例如你的iPad/iPhone会很老
请注意,您必须在设备上同时使用 iOS 13.4
和 Xcode 11.4
,否则,您仍会看到日志。
自从我安装了 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 的视图控制器中都发生了这种情况,所以这似乎不是代码错误。
这 不会使应用程序崩溃 ,但我想知道为什么会发生这种情况,以及其他人是否遇到同样的问题。
这是 WebKit(或底层 OS 本身)中的错误。 不,它 未 在 13.[2,3] 版本中修复。
参见:
- https://bugs.webkit.org/show_bug.cgi?id=202173
- https://www.mail-archive.com/webkit-changes@lists.webkit.org/msg146193.html
更新:
它已在 13.4 版本中修复。
如已接受的答案,这是一个 WebKit 错误,似乎已修复但直到最新的 iOS 版本 13.2.2(当时写这个答案) 已在 iOS 13.4.
但是,作为一种变通方法,您可以暂时 disable/hide 日志,如
1- 从 Xcode 菜单打开:产品 > 方案 > 编辑方案
2- 在您的环境变量上设置 OS_ACTIVITY_MODE
= disable
这只会隐藏日志,以便您可以在 iOS 上继续开发和测试。正如一些人指出的那样,这个问题无论如何都会导致他们的应用程序崩溃(对我来说直到现在才崩溃)。另外,请小心使用此方法,因为它可能会隐藏重要的错误消息!
我真的不知道为什么这会影响它,但是嘿¯\_(ツ)_/¯
我正在使用 Firebase
- 我的 Podfile 中有一行:
pod 'Firebase/DynamicLinks'
删除后,我不再收到这些日志。奇怪,但我想如果你现在还不需要这个 pod,它就可以工作。
这可能也是其他 pods 的问题,谁知道呢。
我的 Podfile 中有该行用于我尚未实现的功能,但在我获得完整的 Apple 开发者会员帐户之前不能。
我预先承认这很糟糕 "answer" 但这是一个有效的观察。这与沙盒有关。如果您在没有沙箱的情况下重建您的应用程序,则不会有任何消息。如果您打开沙箱并启用我的应用程序所需的所有传出连接,webkit 中的每个鼠标事件都会给我不愉快的消息。
如果我还包括传入连接,作为测试,相同的消息。
删除沙盒(仅供内部使用的应用程序),没有愚蠢的消息。也许这个观察会帮助 Apple 的某个人进一步追踪这个问题。
iOS 13.4 已删除此错误!万岁!
更新于 2020 年 3 月 28 日
Apple终于部署了一些东西,它不仅没有在日志中显示错误,而且实际上允许我们;开发人员编译,运行 并提交申请。
特别是,如果您要将 Cordova/PhoneGap 应用程序与任何想要 运行 HTML5/JavaScript framework/game (Ionic/Phaser) 的应用程序结合使用
=40=] 通过使用 WebView 作为 web 包装器(我个人与此问题相关的经验)。但是,不确定相同的问题是否适用于 NativeScript/React 本机或本机 Java/Kotlin/Swift - 这些不需要 Web 包装器到 运行。
没关系,请将您的 iPhone/iPad 更新为 iOS 13.4 和 (!!)Xcode 到 11.4。它们都是 3 天前发布的,可以确认我的 Cordova 封装的应用程序不再有日志并且不会崩溃。
由于历史原因,我会写一条注释 - 受影响的 iOS 版本是:13.2.X、13.3.X,包括其测试版。如果您在一段时间后阅读本文 - 您需要通过升级到高于 13.3 的版本(推荐)或降级到低于 13.2 的版本(不推荐)来摆脱这些。仅当 Apple 出于某种原因阻止您进行进一步更新时,您才可以使用第二个选项,例如你的iPad/iPhone会很老
请注意,您必须在设备上同时使用 iOS 13.4
和 Xcode 11.4
,否则,您仍会看到日志。