UIWebView/WKWebView crash on iOS11 (ran out of executable memory)
在 iOS 11 上使用 UIWebView 或 WKWebView 加载一些网页会导致崩溃,原因是"在分配 128 字节时耗尽了可执行内存"。随附的屏幕截图显示了完整的堆栈跟踪。这似乎是 Webkit 的 Javascript 引擎的问题。在 iOS 10 及更早版本上没有这样的问题。所以它在 iOS 11 上是新的。在模拟器上没问题。仅在真实设备上。
以下是导致崩溃的示例 URL:
https://wstream.video/mobi/iu94ezdbr6h4
- 这是我在运行 iOS 11 的 iPhone 6s 上测试的源代码:github.com/msencenb/UIWebView-Example
-
嗨 SZP,此代码不起作用。
-
嗨 Paolpa,要在 iPhone 上运行示例,您需要: 1. 设置您的开发人员证书 2. 在 Build settings 中将 Architectures 设置为 Standard 3. 在 info.plist 中添加以下行:<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
-
要重现 SimpleBrowserViewController.m -> viewDidLoad 中的崩溃,请将 URL 从 google 更改为 wstream.video/mobi/iu94ezdbr6h4 如果您需要更多导致崩溃的 URL,请告诉我。
-
嗨 SZP,是的,我今天早上在这里问,因为我和你有同样的错误。我也在等待有人帮助我们:) 我认为这与 WebAssembly 有关
-
遵循爱斯基摩人(Apple Dev Support)的建议,尝试了相同的场景,但使用了 WKWebView。 WKWebView 的问题也仍然存在。
您提供的站点中的加密挖掘脚本导致了这个崩溃:(
如果你真的想在 webview 中挖掘比特币,你可以设置以下环境变量来禁用 iOS 11 中的错误 JIT:
1
| setenv("JSC_useJIT","false", 0); |