Мои приложения имеют значительный сбой -
CALayer position contains NaN: [377.833 nan]
со следующим стеком -
Fatal Exception: CALayerInvalidGeometry
0 CoreFoundation 0x18283afe0 __exceptionPreprocess
1 libobjc.A.dylib 0x18129c538 objc_exception_throw
2 CoreFoundation 0x18283af28 -[NSException initWithCoder:]
3 QuartzCore 0x185b50acc CA::Layer::set_position(CA::Vec2<double> const&, bool)
4 QuartzCore 0x185b50c48 -[CALayer setPosition:]
5 QuartzCore 0x185b51198 -[CALayer setFrame:]
6 UIKit 0x1889657a8 -[UIView(Geometry) setFrame:]
7 UIKit 0x188979364 -[UIImageView _setViewGeometry:forMetric:]
8 UIKit 0x1889c6c38 -[UIScrollView _adjustScrollerIndicators:alwaysShowingThem:]
9 UIKit 0x188abfb34 -[UIScrollView(UIScrollViewInternal) _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:]
10 WebKit 0x18c14af3c -[WKWebView _keyboardChangedWithInfo:adjustScrollView:]
11 CoreFoundation 0x1827d55f4 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
12 CoreFoundation 0x1827d4d08 _CFXRegistrationPost
13 CoreFoundation 0x1827d4a84 ___CFXNotificationPost_block_invoke
14 CoreFoundation 0x1828437a8 -[_CFXNotificationRegistrar find:object:observer:enumerator:]
15 CoreFoundation 0x18271895c _CFXNotificationPost
16 Foundation 0x18322a930 -[NSNotificationCenter postNotificationName:object:userInfo:]
17 UIKit 0x1893500e4 -[UIInputWindowController postStartNotifications:withInfo:]
18 UIKit 0x189352350 __77-[UIInputWindowController moveFromPlacement:toPlacement:starting:completion:]_block_invoke.907
19 UIKit 0x188a383cc -[UIInputViewAnimationStyle launchAnimation:afterStarted:completion:forHost:fromCurrentPosition:]
20 UIKit 0x189351dc8 -[UIInputWindowController moveFromPlacement:toPlacement:starting:completion:]
21 UIKit 0x1893588b0 -[UIInputWindowController setInputViewSet:]
22 UIKit 0x189351494 -[UIInputWindowController performOperations:withAnimationStyle:]
23 UIKit 0x188a30d94 -[UIPeripheralHost(UIKitInternal) setInputViews:animationStyle:]
24 UIKit 0x1890f7160 -[_UIRemoteKeyboards keyboardChanged:shouldConsiderSnapshottingKeyboard:isLocalEvent:]
25 UIKit 0x1890f6e8c __37-[_UIRemoteKeyboards
Глядя на журналы пользователей, я нашел несколько общих вещей -
- Все пользователи находятся в контроллере представления, содержащем WKWebView
- Все журналы указывают, что приложение получило "applicationWillResignActive" перед сбоем
- Стек показывает, что клавиатура была открыта, но нам не нужно открывать клавиатуру на этом контроллере просмотра
- все пользователи iOS 10.3 +
Единственный сценарий, который подходит, - это то, что пользователь получил iMessage, в то время как приложение было с видимым WKWebView, и сила коснулась его быстрым ответом. Мы протестировали этот сценарий, и BOOOM приложение разбилось.
Итак, мы обнаружили крах, но мы не знаем, что происходит. Любой сталкивался с этой проблемой или имел представление, что это может быть?
Спасибо