这不是一个问题,但我希望在此发布内容以期能够挽救其他人的神智(我刚刚花了大部分时间来解决这个问题)。我已经确定了从iOS 12.0+开始出现的内存泄漏,它影响WKWebView和UIWebView。泄漏出现在你实例化这两个Webview的时候。Instruments将泄漏标识为来自JavaScriptCore,这就是为什么它会同样影响两个Webview的原因。
当我试图找出我做错了什么时,我决定尝试较旧版本的iOS(11.4 - 在12.0之前的版本),我注意到泄漏已经消失了。我可以每次都复现。
要复制此问题,你只需要在类上分配Webview的一个实例即可。
let webview = WKWebView()
或者let webview = UIWebView()
如果您在iOS 12.0/12.1上运行代码,会立即注意到4个泄漏,但在iOS 11.4上运行代码则不存在这4个泄漏。这里有4个单独的泄漏,3 x 96字节和1 x 128字节。
我已通过BugReporter向Apple报告了一个漏洞,并在Openradar上进行了复制:https://openradar.appspot.com/radar?id=6132657108811776