我们的应用程序在英特尔机器上调试时工作正常,但在MacBook Pro上运行M1时崩溃。
尝试初始化WKWebView
时应用程序崩溃
使用DispatchQueue.main.async
在主线程上调用setUpWebViewUI
我们尝试的
- 我们已经尝试了所有常见的解决方案(干净的,派生的数据,Rosetta等)。
- 一些开发人员建议更改模式设置,但这对我们也不起作用。
- 我们尝试了
WKWebView
的其他init方法,但也会导致相同的崩溃。
有效的方法
我们发现的一件事是,如果没有附加Xcode,应用程序可以正常工作。如果我们使用Product文件夹中的.app文件运行应用程序,那么它可以正常工作,没有任何崩溃。
版本详细信息:
macOS版本:11.6.4.
Xcode版本:13.2.1
调用堆栈
#0 0x00000001972bbf50 in void JSC::LinkBuffer::copyCompactAndLinkCode<unsigned int>(JSC::MacroAssembler&, JSC::JITCompilationEffort) ()
#1 0x00000001972bb35c in JSC::LinkBuffer::linkCode(JSC::MacroAssembler&, JSC::JITCompilationEffort) ()
#2 0x0000000197908104 in JSC::LLInt::createJSGateThunk(void*, WTF::PtrTag, char const*) ()
#3 0x0000000196edec44 in JSC::LLInt::initialize() ()
#4 0x0000000197a9410c in void std::__1::__call_once_proxy<std::__1::tuple<JSC::initialize()::$_0&&> >(void*) ()
#5 0x000000018195d2b0 in std::__1::__call_once(unsigned long volatile&, void*, void (*)(void*)) ()
#6 0x0000000197a90ac8 in JSC::initialize() ()
#7 0x000000019ca24fc0 in WebKit::runInitializationCode(void*) ()
#8 0x000000018195d2b0 in std::__1::__call_once(unsigned long volatile&, void*, void (*)(void*)) ()
#9 0x000000019c80cafc in WebKit::InitializeWebKit2() ()
#10 0x000000019caeba84 in -[WKWebViewConfiguration init] ()
#11 0x000000019cae12b0 in -[WKWebView initWithFrame:] ()
#12 0x0000000104263428 in @nonobjc WKWebView.init() ()
#13 0x0000000104262350 in WKWebView.__allocating_init() ()
#14 0x000000010440c20c in AccountDetailViewController.setUpWebViewUI() at
2条答案
按热度按时间qni6mghb1#
我也遇到了同样的问题。对我来说唯一有效的解决方法是在Rosetta下运行XCode(在/Applications中打开XCode的设置并设置Rosetta复选框),然后在目标
My mac (Rosetta)
上构建并运行应用程序在这种情况下,所有代码都将针对x86_64进行编译,x86_64不存在
WKWebView
的问题。k2fxgqgv2#
这里仍然有同样的问题,MacOS 13和XCode 14.1。
只要将WKWebKit的一个示例附加到IB中的NSWindow中,就会使应用程序在加载窗口控制器时立即崩溃。