xcode MacOS应用程序在M1上使用EXC_BREAKPOINT时在WKWebView()上崩溃

jk9hmnmh  于 2022-11-17  发布在  Mac
关注(0)|答案(2)|浏览(148)

我们的应用程序在英特尔机器上调试时工作正常,但在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
qni6mghb

qni6mghb1#

我也遇到了同样的问题。对我来说唯一有效的解决方法是在Rosetta下运行XCode(在/Applications中打开XCode的设置并设置Rosetta复选框),然后在目标My mac (Rosetta)上构建并运行应用程序
在这种情况下,所有代码都将针对x86_64进行编译,x86_64不存在WKWebView的问题。

k2fxgqgv

k2fxgqgv2#

这里仍然有同样的问题,MacOS 13和XCode 14.1。
只要将WKWebKit的一个示例附加到IB中的NSWindow中,就会使应用程序在加载窗口控制器时立即崩溃。

相关问题