web-dev-qa-db-fra.com

Crash dans UIKitCore [UIViewController viewDidMoveToWindow: shouldAppearOrDisappear:] iOS 12 uniquement

Je reçois un nombre décent de plantages signalés à Crashlytics. Cela ne se produit que sur iOS 12 et je ne sais pas comment le reproduire. L'utilisateur est peut-être sur WKWebView et essaie d'entrer un mot de passe à partir de l'indice dans 31 SafariServices 0x21d216740 __107+[_SFAutomaticPasswordInputViewController inputViewControllerWithAutoFillContext:passwordRules:completion:]_block_invoke.29 + 104

Si quelqu'un a un crash ou des idées similaires, cela est grandement apprécié.

[~ # ~] mise à jour [~ # ~] : ce problème est suivi ici: https://github.com/firebase/firebase-ios-sdk/issues/228 Merci à Igor

Crashed: com.Apple.main-thread
0  libsystem_kernel.dylib         0x207743df8 __abort_with_payload + 8
1  libsystem_kernel.dylib         0x20773d838 abort_with_payload_wrapper_internal + 100
2  libsystem_kernel.dylib         0x20773d7d4 abort_with_payload_wrapper_internal + 34
3  libobjc.A.dylib                0x206d7d4b4 _objc_fatalv(unsigned long long, unsigned long long, char const*, char*) + 112
4  libobjc.A.dylib                0x206d7d40c __objc_error + 42
5  libobjc.A.dylib                0x206d94af0 weak_entry_insert(weak_table_t*, weak_entry_t*) + 314
6  libobjc.A.dylib                0x206d95a60 objc_initWeak + 360
7  UIKitCore                      0x23457508c -[UIViewController viewDidMoveToWindow:shouldAppearOrDisappear:] + 1628
8  UIKitCore                      0x234fcaff8 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1240
9  UIKitCore                      0x234fbdfac __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 156
10 Foundation                     0x20854d51c -[NSISEngine withBehaviors:performModifications:] + 108
11 UIKitCore                      0x234fbde90 -[UIView(Hierarchy) _postMovedFromSuperview:] + 784
12 UIKitCore                      0x234fcdbb8 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1740
13 UIKitCore                      0x234843290 -[_UIKBCompatInputView addSubview:] + 48
14 UIKitCore                      0x234845634 -[UICompatibilityInputViewController setInputMode:] + 980
15 CoreFoundation                 0x207b1cd14 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
16 CoreFoundation                 0x207b1cce0 ___CFXRegistrationPost_block_invoke + 64
17 CoreFoundation                 0x207b1c1d0 _CFXRegistrationPost + 392
18 CoreFoundation                 0x207b1be7c ___CFXNotificationPost_block_invoke + 96
19 CoreFoundation                 0x207a941c0 -[_CFXNotificationRegistrar find:object:observer:enumerator:] + 1404
20 CoreFoundation                 0x207b1b908 _CFXNotificationPost + 696
21 Foundation                     0x20852aeb0 -[NSNotificationCenter postNotificationName:object:userInfo:] + 68
22 UIKitCore                      0x234956920 -[UIKeyboardImpl _setKeyboardInputMode:userInitiated:updateIndicator:force:executionContext:] + 1108
23 UIKitCore                      0x2349564b0 -[UIKeyboardImpl setKeyboardInputMode:userInitiated:updateIndicator:executionContext:] + 112
24 UIKitCore                      0x2349a4460 -[UIKeyboardTaskEntry execute:] + 200
25 UIKitCore                      0x2349a2b70 -[UIKeyboardTaskQueue continueExecutionOnMainThread] + 384
26 UIKitCore                      0x2349a3280 -[UIKeyboardTaskQueue addAndReturnTask:] + 132
27 UIKitCore                      0x2349a37d0 -[UIKeyboardTaskQueue performSingleTask:] + 136
28 UIKitCore                      0x234956098 -[UIKeyboardImpl setInputMode:userInitiated:] + 116
29 UIKitCore                      0x234844e9c -[UICompatibilityInputViewController resetInputModeInMainThread] + 196
30 UIKitCore                      0x234846450 __51-[UICompatibilityInputViewController setInputMode:]_block_invoke.624 + 544
31 SafariServices                 0x21d216740 __107+[_SFAutomaticPasswordInputViewController inputViewControllerWithAutoFillContext:passwordRules:completion:]_block_invoke.29 + 104
32 libdispatch.dylib              0x2075e76c8 _dispatch_call_block_and_release + 24
33 libdispatch.dylib              0x2075e8484 _dispatch_client_callout + 16
34 libdispatch.dylib              0x2075949ec _dispatch_main_queue_callback_4CF$VARIANT$mp + 1068
35 CoreFoundation                 0x207b3e1bc __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
36 CoreFoundation                 0x207b39084 __CFRunLoopRun + 1964
37 CoreFoundation                 0x207b385b8 CFRunLoopRunSpecific + 436
38 GraphicsServices               0x209dac584 GSEventRunModal + 100
39 UIKitCore                      0x234b30bc8 UIApplicationMain + 212
40 MyApp                          0x102f15770 main (main.m:29)
41 libdyld.dylib                  0x2075f8b94 start + 4

MISE À JOUR:

L'équipe Firebase a signalé qu'il était corrigé dans la version 5.19.0 https://firebase.google.com/support/release-notes/ios#5.19.

Performance Monitoring

Fixed a crash related to password auto-fill screen
13
Gomfucius

J'ai eu un accident similaire. Cela n'est arrivé que si j'avais 3 UITextFields dans cet ordre: email, mot de passe, mot de passe. Pour les champs de mot de passe, la propriété isSecureTextEntry est définie sur true. Pour le faire planter, j'ai changé le focus sur l'un des champs de mot de passe, je suis passé à l'écran principal et à l'application. Parfois, cela arrivait au deuxième ou au troisième basculement entre l'écran principal et l'application.

Donc, dans mon cas, la raison était le module Firebase/Performance. Je l'ai supprimé pendant un certain temps - cela a corrigé le bogue.

UPDATE : L'équipe Firebase corrige ce bogue dans la version 5.19.0. Mettez simplement à jour vos modules Firebase.

8
Denis Vert