Description
We see many un-reproducible app hangs on ios with following stack hint:
The UI the place we see it is a use of modal + text-input + keyboard interplay:
QuartzCore 0x198365c8c -[CALayer animationForKey:]
QuartzCore 0x198365c74 -[CALayer animationForKey:]
UIKitCore 0x1991e2cf8 -[UIViewAnimationState _shouldAnimateAdditivelyForKey:onLayer:forView:]
UIKitCore 0x199096f8c -[UIViewAnimationState _shouldStartFromCurrentStateForLayer:key:forView:]
UIKitCore 0x199096924 -[UIViewAnimationState animationForLayer:forKey:forView:]
UIKitCore 0x199096610 -[UIViewAnimationState actionForLayer:forKey:forView:]
UIKitCore 0x19909569c +[UIView(Animation) _defaultUIViewActionForLayer:forKey:]
UIKitCore 0x199095850 -[UIView(UIKitManual) actionForLayer:forKey:]
QuartzCore 0x198305bd4 -[CALayer actionForKey:]
QuartzCore 0x198305a48 CA::Layer::begin_change
QuartzCore 0x198362d0c CA::Layer::set_bounds
QuartzCore 0x198362b9c -[CALayer setBounds:]
UIKitCore 0x199081078 -[UIView _backing_setBounds:]
UIKitCore 0x19907f5f0 -[UIView(Geometry) setBounds:]
MyApp 0x1032e32c0 -[UIView(React) reactSetFrame:] (UIView+React.m:205)
MyApp 0x1032d89c8 -[RCTView reactSetFrame:] (RCTView.m:785)
UIKitCore 0x19a59f510 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:]
UIKitCore 0x199296b60 +[UIView(UIViewAnimationWithBlocks) animateWithDuration:delay:options:animations:completion:]
MyApp 0x1032a6f28 -[RCTLayoutAnimation performAnimations:withCompletionBlock:] (RCTLayoutAnimation.m:121)
MyApp 0x1032cb9b8 __51-[RCTUIManager uiBlockWithLayoutUpdateForRootView:]_block_invoke.99 (RCTUIManager.m:688)
MyApp 0x1032cec34 __44-[RCTUIManager flushUIBlocksWithCompletion:]_block_invoke (RCTUIManager.m:1208)
MyApp 0x1032ced24 __44-[RCTUIManager flushUIBlocksWithCompletion:]_block_invoke_2 (RCTUIManager.m:1228)
libdispatch 0x19e5a036c _dispatch_call_block_and_release
libdispatch 0x19e5a20cc _dispatch_client_callout
libdispatch 0x19e5b09dc _dispatch_main_queue_drain
libdispatch 0x19e5b05f8 _dispatch_main_queue_callback_4CF
CoreFoundation 0x1968a0200 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
CoreFoundation 0x19689d43c __CFRunLoopRun
CoreFoundation 0x19689c82c CFRunLoopRunSpecific
GraphicsServices 0x1e287c1c0 GSEventRunModal
UIKitCore 0x199402eac -[UIApplication _run]
UIKitCore 0x1994b15b0 UIApplicationMain
MyApp 0x102d61b90 major (major.m:14)
0x1bc28aec8
Steps to breed
no-repor
Snack or a hyperlink to a repository
Reanimated model
3.7.0
React Native model
0.73.9
Platforms
iOS
JavaScript runtime
Hermes
Workflow
React Native
Structure
Paper (Previous Structure)
Construct sort
Launch app & manufacturing bundle
System
Actual machine
System mannequin
Iphone 17, iPhone 18
Acknowledgements
Sure
Steps to breed
Solely in manufacturing it reveals up randomly.
Includes interplay of a
- textual content enter
- in a modal
- opening keyboard
React Native Model
0.73.9
Affected Platforms
Runtime – iOS
Output of npx react-native information
System:
OS: macOS 15.1.1
CPU: (10) arm64 Apple M1 Max
Reminiscence: 273.39 MB / 32.00 GB
Shell:
model: "5.9"
path: /bin/zsh
Binaries:
Node:
model: 18.13.0
path: ~/.nvm/variations/node/v18.13.0/bin/node
Yarn:
model: 1.18.0
path: ~/.yarn/bin/yarn
npm:
model: 8.19.3
path: ~/.nvm/variations/node/v18.13.0/bin/npm
Watchman:
model: 2024.10.21.00
path: /decide/homebrew/bin/watchman
Managers:
CocoaPods:
model: 1.14.3
path: /Customers/jshah/.rbenv/shims/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.0
- iOS 18.0
- macOS 15.0
- tvOS 18.0
- visionOS 2.0
- watchOS 11.0
Android SDK: Not Discovered
IDEs:
Android Studio: 2022.3 AI-223.8836.35.2231.10811636
Xcode:
model: 16.0/16A242d
path: /usr/bin/xcodebuild
Languages:
Java:
model: 17.0.12
path: /usr/bin/javac
Ruby:
model: 3.3.0
path: /Customers/jshah/.rbenv/shims/ruby
npmPackages:
"@react-native-community/cli": Not Discovered
react:
put in: 18.2.0
needed: 18.2.0
react-native:
put in: 0.73.9
needed: 0.73.9
react-native-macos: Not Discovered
npmGlobalPackages:
"*react-native*": Not Discovered
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false