【发布时间】:2019-03-23 13:25:32
【问题描述】:
我收到了大量报告给 Crashlytics 的崩溃。这只发生在 iOS 12 上,我不知道如何重现。也许用户在 WKWebView 上并尝试从 31 SafariServices 0x21d216740 __107+[_SFAutomaticPasswordInputViewController inputViewControllerWithAutoFillContext:passwordRules:completion:]_block_invoke.29 + 104
中的提示输入密码
如果有人有类似的崩溃或想法,不胜感激。
更新: 此处正在跟踪此问题:https://github.com/firebase/firebase-ios-sdk/issues/2283 感谢 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
更新:
Firebase 团队报告它已在 5.19.0 https://firebase.google.com/support/release-notes/ios#5.19.0 中修复
Performance Monitoring
Fixed a crash related to password auto-fill screen
【问题讨论】:
-
我们也有同样的崩溃。仅限 iOS12。经过一番研究,我找到了一种重现它的方法。我们的应用在同一个视图上有多个文本字段,还有一个自定义 inputAccessory 视图,不确定这是否相关。用一些文本填充 textview 后,长按将焦点从一个 textview 更改为另一个以触发循环。日志显示: > objc[4531]: 无法形成对 UICompatibilityInputViewController 类的实例 (0x11bf6a4c0) 的弱引用。该对象可能被过度释放,或者正在被释放。希望这会有所帮助!
-
@Loadex 您能否更详细地描述步骤,或者可能录制视频。努力重现崩溃
-
当用户单击带有 textContentType == .newPassword 的 UITextField 时,会出现此堆栈跟踪。例如在注册屏幕上
-
@IgorPalaguta 步骤如下: 1. 在姓名和电子邮件字段中输入数据 2. 点击密码字段,从 iOS 键盘选择“使用强密码” 3. 点击重复密码字段。 iOS 也会自动填充它 4. 点击其他字段之一(姓名或电子邮件)以关注它们 5. 长按密码或重复密码(以没有焦点的为准)直到放大镜出现 6. 从 4 重复
标签: ios ios12 safariservices