This is an excellent question. I'm wondering about exactly the same thing. The provided samples are extremely simplistic.Dear Apple engineers, could we get a reply about what the suggested strategy is when it comes to real life applications with deep view controller hierarchies, tab bars, etc?Thank you!
Post
Replies
Boosts
Views
Activity
Wow, that's great! Thank you for the quick reply :)
I'm seeing the same behavior. It must be a bug. Also happens in beta 2 that was released today. Could you explain how exactly you worked around it? Thanks!
On Big Sur you can use NSCursor in Catalyst. It's mentioned in this video: https://developer.apple.com/videos/play/wwdc2020/10143/
I had the same issue. For me it came down to this:
I had Xcode installed from the App Store. When the Xcode 12 GM was released, I renamed "Xcode.app" to "Xcode 11.app" and then downloaded the Xcode 12 GM and dragged it into Applications as "Xcode.app".
It turns out that the App Store keeps track of the Xcode version I had downloaded from it, even though I had renamed it to "Xcode 11.app". Only after deleting it did the update prompt disappear.
Thank you for your thorough reply. I have a related issue: In the PromiseKit framework, AnyPromise's default argument-less init initializer is marked as unavailable in the Objective-C header (see https://github.com/mxcl/PromiseKit/blob/master/Sources/AnyPromise.h#L295).
When trying to call it from Objective-C with [[AnyPromise alloc] init] the compiler correctly complains. However, there's no warning and no compiler error when illegally constructing it from Swift using AnyPromise(). Is there a way to work around this? I've tried a few, but to no avail. Shouldn't the Swift compiler pick up the Objective-C unavailable declaration in AnyPromise.h?
I'm seeing a very similar thing happening when running our app on an M1 Mac or using Catalyst: All you need is a WKWebView with a textarea element. When you use the keyboard arrow keys to quickly move up and down a few times, you get the beachball of death and a similar stack trace:
17 main + 64 (AppDelegate.swift:17,7 in MyApp + 3103436) [0x1048a9acc]
17 UIApplicationMain + 164 (UIKitCore + 11036) [0x1c4e95b1c]
17 UINSApplicationMain + 1280 (UIKitMacHelper + 19992) [0x1b4f88e18]
17 _NSApplicationMainWithInfoDictionary + 24 (AppKit + 3091152) [0x1a4afaad0]
17 NSApplicationMain + 1064 (AppKit + 14456) [0x1a480b878]
17 -[NSApplication run] + 596 (AppKit + 204364) [0x1a4839e4c]
17 -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1292 (AppKit + 262144) [0x1a4848000]
17 _DPSNextEvent + 836 (AppKit + 267872) [0x1a4849660]
17 _BlockUntilNextEventMatchingListInModeWithFilter + 72 (HIToolbox + 194164) [0x1a9f7c674]
17 ReceiveNextEventCommon + 552 (HIToolbox + 194740) [0x1a9f7c8b4]
17 RunCurrentEventLoopInMode + 292 (HIToolbox + 195392) [0x1a9f7cb40]
17 CFRunLoopRunSpecific + 600 (CoreFoundation + 528808) [0x1a20571a8]
17 __CFRunLoopRun + 820 (CoreFoundation + 531540) [0x1a2057c54]
17 __CFRunLoopDoSources0 + 268 (CoreFoundation + 537292) [0x1a20592cc]
17 __CFRunLoopDoSource0 + 208 (CoreFoundation + 538080) [0x1a20595e0]
17 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 (CoreFoundation + 538260) [0x1a2059694]
17 WTF::RunLoop::performWork(void*) + 36 (JavaScriptCore + 16183380) [0x1d2eb9054]
17 WTF::RunLoop::performWork() + 484 (JavaScriptCore + 16179332) [0x1d2eb8084]
17 WTF::Detail::CallableWrapper<IPC::Connection::SyncMessageState::processIncomingMessage(IPC::Connection&, std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >&)::$_1, void>::call() + 504 (WebKit + 392372) [0x1d379bcb4]
17 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 760 (WebKit + 388268) [0x1d379acac]
17 WebKit::WebProcessProxy::didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >&) + 44 (WebKit + 3635628) [0x1d3ab39ac]
17 IPC::MessageReceiverMap::dispatchSyncMessage(IPC::Connection&, IPC::Decoder&, std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >&) + 132 (WebKit + 508152) [0x1d37b80f8]
17 WebKit::WebPageProxy::didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >&) + 7644 (WebKit + 6020144) [0x1d3cf9c30]
17 WebKit::WebPageProxy::interpretKeyEvent(WebKit::EditorState const&, bool, WTF::CompletionHandler<void (bool)>&&) + 364 (WebKit + 3887956) [0x1d3af1354]
17 -[WKContentView(WKInteraction) _interpretKeyEvent:isCharEvent:] + 212 (WebKit + 6518580) [0x1d3d73734]
17 -[UIKeyboardImpl handleKeyTextCommandForCurrentEvent] + 192 (UIKitCore + 11228716) [0x1c594862c]
17 -[UIKeyboardImpl _handleKeyCommand:] + 28 (UIKitCore + 11312584) [0x1c595cdc8]
17 -[UIKeyboardImpl _handleKeyCommandCommon:testOnly:] + 88 (UIKitCore + 11312688) [0x1c595ce30]
17 -[UIKeyboardImpl handleKeyCommand:repeatOkay:beforePublicKeyCommands:testOnly:] + 4020 (UIKitCore + 11164260) [0x1c5938a64]
17 -[UIKeyboardImpl handleVerticalArrow:shiftDown:beforePublicKeyCommands:testOnly:isVerticalCandidate:hasCandidatesForTypedInput:inputDelegateCommandEnabled:canHandleInputDelegateCommand:savedHistory:keyCommandTypeHandled:] + 316 (UIKitCore + 11224064) [0x1c5947400]
17 __221-[UIKeyboardImpl handleVerticalArrow:shiftDown:beforePublicKeyCommands:testOnly:isVerticalCandidate:hasCandidatesForTypedInput:inputDelegateCommandEnabled:canHandleInputDelegateCommand:savedHistory:keyCommandTypeHandled:]_block_invoke + 80 (UIKitCore + 11224344) [0x1c5947518]
17 -[WKContentView(WKInteraction) _moveDown:withHistory:] + 48 (WebKit + 6520204) [0x1d3d73d8c]
17 -[WKContentView(WKInteraction) executeEditCommandWithCallback:] + 44 (WebKit + 6519572) [0x1d3d73b14]
17 -[UIKeyboardImpl selectionWillChange:] + 84 (UIKitCore + 11187000) [0x1c593e338]
17 -[UIKeyboardImpl prepareForSelectionChange] + 116 (UIKitCore + 11186468) [0x1c593e124]
17 -[UIKeyboardTaskQueue waitUntilAllTasksAreFinished] + 204 (UIKitCore + 11404068) [0x1c5973324]
17 -[UIKeyboardTaskQueue lockWhenReadyForMainThread] + 120 (UIKitCore + 11402144) [0x1c5972ba0]
17 -[NSConditionLock lockWhenCondition:beforeDate:] + 104 (Foundation + 257304) [0x1a2ddcd18]
17 -[NSCondition waitUntilDate:] + 148 (Foundation + 247268) [0x1a2dda5e4]
17 _pthread_cond_wait + 1292 (libsystem_pthread.dylib + 32216) [0x1a1f5bdd8]
17 __psynch_cvwait + 8 (libsystem_kernel.dylib + 17736) [0x1a1f24548]
*17 psynch_cvcontinue + 0 (pthread + 17576) [0xfffffe000a9c04a8]
I feel that it same something to do with this: https://bugs.webkit.org/attachment.cgi?id=375074&action=prettypatch
Setting autocapitalize="none" autocomplete="off" autocorrect="off" spellcheck="false" on the HTML textarea element makes no difference. Any ideas or workarounds?
@MrOfu, thank you for the reply and suggestion. Could you explain how and why those settings help with the described error?
@Hemalatha1910 did those suggestions fix the problem for you?
We are getting the same error, but only when running our iPad app on masOS on Apple Silicon.
@benjaminapple This is an absolute need for me, too. I'd like to build and test "Designed for iPad" apps on macOS with Xcode. But I can only build and run them if I'm signed in to my account in Xcode. Please make this a priority. Simply supporting logging in to my account with Xcode in a VM would already go a long way. Thanks!
@bryonnicoson Did you ever find a solution?
For anyone else looking for a solution, you need to install Rosetta: softwareupdate --install-rosetta --agree-to-license
That should not be necessary anymore once this Flutter fix is released: https://github.com/flutter/engine/pull/53524
Enjoy!