#ios #xcode #debugging #crash #autofill
#iOS #xcode #отладка #сбой #автозаполнение
Вопрос:
Я был бы очень признателен, если бы кто-нибудь мог потратить свое время, чтобы помочь мне!!!
С чем я сталкиваюсь сейчас Я пытался представить контроллер представления из расширения, и приложение разбилось, не выдав мне строку кода ошибки.
Что я пробовал: я добавил много точек останова, обнаружил, что если я не представлю контроллер представления таблицы для отображения правильной информации, сбой не произойдет. Но после презентации, после правильной загрузки информации в таблицу, через несколько секунд происходит сбой.
Что я могу предоставить: я могу предоставить полный отчет о сбое:
Incident Identifier: 03B53A6D-E069-4C4B-98C0-CB61C8C1A688
CrashReporter Key: 1dd64f8867f0eda63dfc5248be178fbebdd71653
Hardware Model: iPhone9,2
Process: EverykeyAutofillExtension [98811]
Path: /private/var/containers/Bundle/Application/63F02B78-71D9-405B-AC3F-314868CA262D/Privacy.app/PlugIns/PrivacyExtension.appex/EverykeyAutofillExtension
Identifier: comPrivacy.ios.PrivacyAutofillExtension
Version: 12 (2.4.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.Privacy.ios.PrivacyAutofillExtension [24965]
Date/Time: 2020-08-26 14:20:40.7959 -0400
Launch Time: 2020-08-26 14:20:03.4675 -0400
OS Version: iPhone OS 13.5.1 (17F80)
Release Type: User
Baseband Version: 7.60.01
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x000000019819e9d0
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [98811]
Triggered by Thread: 1
Last Exception Backtrace:
0 CoreFoundation 0x19853d794 __exceptionPreprocess 224
1 libobjc.A.dylib 0x19825fbcc objc_exception_throw 55
2 Foundation 0x198a151fc _AssertAutolayoutOnAllowedThreadsOnly 419
3 Foundation 0x19882207c -[NSISEngine _optimizeWithoutRebuilding] 67
4 Foundation 0x198821f98 -[NSISEngine optimize] 111
5 Foundation 0x198821c0c -[NSISEngine performPendingChangeNotifications] 111
6 UIKitCore 0x19ca97e88 -[UIView 15605384 (CALayerDelegate) _wantsReapplicationOfAutoLayoutWithLayoutDirtyOnEntry:] 171
7 UIKitCore 0x19ca988c4 -[UIView 15608004 (CALayerDelegate) layoutSublayersOfLayer:] 2247
8 QuartzCore 0x19f02b724 -[CALayer layoutSublayers] 283
9 QuartzCore 0x19f03187c CA::Layer::layout_if_needed 1407100 (CA::Transaction*) 467
10 QuartzCore 0x19f03c3c0 CA::Layer::layout_and_display_if_needed 1450944 (CA::Transaction*) 139
11 QuartzCore 0x19ef84f1c CA::Context::commit_transaction 700188 (CA::Transaction*, double) 295
12 QuartzCore 0x19efae8bc CA::Transaction::commit 870588 () 675
13 QuartzCore 0x19efaf85c CA::Transaction::release_thread 874588 (void*) 227
14 libsystem_pthread.dylib 0x198256f8c _pthread_tsd_cleanup 579
15 libsystem_pthread.dylib 0x198253df4 _pthread_exit 79
16 libsystem_pthread.dylib 0x198254e64 _pthread_wqthread_exit 95
17 libsystem_pthread.dylib 0x198254c04 _pthread_wqthread 415
18 libsystem_pthread.dylib 0x198257740 start_wqthread 7
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x0000000198311198 mach_msg_trap 8
1 libsystem_kernel.dylib 0x000000019831060c mach_msg 72
2 CoreFoundation 0x00000001984bb468 __CFRunLoopServiceMachPort 148
3 CoreFoundation 0x00000001984b649c __CFRunLoopRun 1160
4 CoreFoundation 0x00000001984b5ce8 CFRunLoopRunSpecific 424
5 GraphicsServices 0x00000001a260038c GSEventRunModal 160
6 UIKitCore 0x000000019c5e4444 UIApplicationMain 1932
7 libxpc.dylib 0x00000001981218fc _xpc_objc_main.cold.3 208
8 libxpc.dylib 0x000000019810d4f0 _xpc_objc_main 212
9 libxpc.dylib 0x000000019810fb4c xpc_main 148
10 Foundation 0x0000000198834534 [NSXPCListener serviceListener] 0
11 PlugInKit 0x00000001a599fd50 0x1a5989000 93520
12 PlugInKit 0x00000001a599fa68 0x1a5989000 92776
13 PlugInKit 0x00000001a59a015c 0x1a5989000 94556
14 Foundation 0x0000000198a0d2c0 NSExtensionMain 64
15 libdyld.dylib 0x000000019833d8f0 start 4
Thread 1 Crashed:
0 libsystem_c.dylib 0x000000019819e9d0 __abort 144
1 libsystem_c.dylib 0x000000019819e9d0 __abort 144
2 libsystem_c.dylib 0x000000019819e940 __abort 0
3 libc abi.dylib 0x0000000198306cc0 __cxxabiv1::__aligned_malloc_with_fallback 76992 (unsigned long) 0
4 libc abi.dylib 0x00000001982f8e10 demangling_unexpected_handler 19984 () 0
5 libobjc.A.dylib 0x000000019825fe80 _objc_terminate 24192 () 124
6 libc abi.dylib 0x000000019830614c std::__terminate(void (*) 74060 ()) 16
7 libc abi.dylib 0x0000000198308bd8 __cxa_get_exception_ptr 0
8 libc abi.dylib 0x0000000198308b98 __cxxabiv1::exception_cleanup_func 84888 (_Unwind_Reason_Code, _Unwind_Exception*) 0
9 libobjc.A.dylib 0x000000019825fcf8 _objc_exception_destructor 23800 (void*) 0
10 Foundation 0x0000000198a151fc -[NSISEngine tryToOptimizeReturningMutuallyExclusiveConstraints] 0
11 Foundation 0x000000019882207c -[NSISEngine _optimizeWithoutRebuilding] 68
12 Foundation 0x0000000198821f98 -[NSISEngine optimize] 112
13 Foundation 0x0000000198821c0c -[NSISEngine performPendingChangeNotifications] 112
14 UIKitCore 0x000000019ca97e88 -[UIView 15605384 (CALayerDelegate) _wantsReapplicationOfAutoLayoutWithLayoutDirtyOnEntry:] 172
15 UIKitCore 0x000000019ca988c4 -[UIView 15608004 (CALayerDelegate) layoutSublayersOfLayer:] 2248
16 QuartzCore 0x000000019f02b724 -[CALayer layoutSublayers] 284
17 QuartzCore 0x000000019f03187c CA::Layer::layout_if_needed 1407100 (CA::Transaction*) 468
18 QuartzCore 0x000000019f03c3c0 CA::Layer::layout_and_display_if_needed 1450944 (CA::Transaction*) 140
19 QuartzCore 0x000000019ef84f1c CA::Context::commit_transaction 700188 (CA::Transaction*, double) 296
20 QuartzCore 0x000000019efae8bc CA::Transaction::commit 870588 () 676
21 QuartzCore 0x000000019efaf85c CA::Transaction::release_thread 874588 (void*) 228
22 libsystem_pthread.dylib 0x0000000198256f8c _pthread_tsd_cleanup 580
23 libsystem_pthread.dylib 0x0000000198253df4 _pthread_exit 80
24 libsystem_pthread.dylib 0x0000000198254e64 _pthread_wqthread_legacy_worker_wrap 0
25 libsystem_pthread.dylib 0x0000000198254c04 _pthread_wqthread 416
26 libsystem_pthread.dylib 0x0000000198257740 start_wqthread 8
Thread 2 name: com.apple.uikit.eventfetch-thread
Thread 2:
0 libsystem_kernel.dylib 0x0000000198311198 mach_msg_trap 8
1 libsystem_kernel.dylib 0x000000019831060c mach_msg 72
2 CoreFoundation 0x00000001984bb468 __CFRunLoopServiceMachPort 148
3 CoreFoundation 0x00000001984b649c __CFRunLoopRun 1160
4 CoreFoundation 0x00000001984b5ce8 CFRunLoopRunSpecific 424
5 Foundation 0x00000001987f901c -[NSRunLoop 32796 (NSRunLoop) runMode:beforeDate:] 228
6 Foundation 0x00000001987f8efc -[NSRunLoop 32508 (NSRunLoop) runUntilDate:] 88
7 UIKitCore 0x000000019c6875dc -[UIEventFetcher threadMain] 152
8 Foundation 0x0000000198927e20 __NSThread__start__ 848
9 libsystem_pthread.dylib 0x0000000198253d98 _pthread_start 156
10 libsystem_pthread.dylib 0x000000019825774c thread_start 8
Thread 3:
0 libsystem_pthread.dylib 0x0000000198257738 start_wqthread 0
Thread 4 name: com.apple.NSURLConnectionLoader
Thread 4:
0 libsystem_kernel.dylib 0x0000000198311198 mach_msg_trap 8
1 libsystem_kernel.dylib 0x000000019831060c mach_msg 72
2 CoreFoundation 0x00000001984bb468 __CFRunLoopServiceMachPort 148
3 CoreFoundation 0x00000001984b649c __CFRunLoopRun 1160
4 CoreFoundation 0x00000001984b5ce8 CFRunLoopRunSpecific 424
5 CFNetwork 0x000000019b776894 0x19b775000 6292
6 Foundation 0x0000000198927e20 __NSThread__start__ 848
7 libsystem_pthread.dylib 0x0000000198253d98 _pthread_start 156
8 libsystem_pthread.dylib 0x000000019825774c thread_start 8
Thread 5:
0 libsystem_pthread.dylib 0x0000000198257738 start_wqthread 0
Thread 6:
0 libsystem_pthread.dylib 0x0000000198257738 start_wqthread 0
Thread 7:
0 libsystem_pthread.dylib 0x0000000198257738 start_wqthread 0
Thread 1 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000001
x4: 0x0000000000000000 x5: 0x0000000000989680 x6: 0x000000000000006e x7: 0xffffffffffffffec
x8: 0x00000000ffffffe7 x9: 0x00000001e565b228 x10: 0x00000000000003e8 x11: 0x000000000000000b
x12: 0x00000001d388d080 x13: 0x0000000000000001 x14: 0x0000000000000010 x15: 0x0000000000000007
x16: 0x0000000000000030 x17: 0x0000000000000000 x18: 0x0000000000000000 x19: 0x000000016fa62b58
x20: 0x00000001e2581810 x21: 0x000000016fa62c10 x22: 0x0000000281b4ce40 x23: 0x00000001d3b33000
x24: 0x0000000000000001 x25: 0x0000000000000068 x26: 0x000000000000009c x27: 0x0000000000000068
x28: 0x000000002b310019 fp: 0x000000016fa62b70 lr: 0x000000019819e9d0
sp: 0x000000016fa62b40 pc: 0x000000019819e9d0 cpsr: 0x40000000
esr: 0xf2000001 Address size fault
Комментарии:
1. Очень сложно помочь в отладке без минимального воспроизводимого примера. Но поскольку код запускается
-[NSISEngine tryToOptimizeReturningMutuallyExclusiveConstraints]
, я бы посмотрел на ваши ограничения автоматической компоновки.2. @Howlium Я думаю, что я не представил свой VC из основного потока, это может быть основной причиной возникновения этой проблемы. На данный момент, пока все хорошо. Спасибо за вашу заботу.
Ответ №1:
Посмотрите, ваше приложение разбилось на:
Triggered by Thread: 1
и использовать
[CALayer layoutSublayers]
похоже, вы обновляете пользовательский интерфейс не в основном потоке где-то
Комментарии:
1. Да, после использования DispatchQueue.main.async для представления VC сбой прекращается (после попытки 10 раз ничего не произошло) Я думаю, что ваша идея — это решение для меня. Спасибо за вашу помощь.
Ответ №2:
Всякий раз, когда вы видите что-то подобное
1 libobjc.A.dylib 0x19825fbcc objc_exception_throw 55
Вы должны перейти на вкладку точки останова в Xcode, нажать кнопку , затем точку останова исключения…
Это создаст точку останова под названием «Все исключения Objective-C». Это приостановит работу отладчика в момент возникновения исключения, позволяя вам увидеть точное неправильное использование API Apple, которое вызывает исключение.
Комментарии:
1. да, после добавления точки останова исключения я получил «Исключение: «Изменения в механизме компоновки не должны выполняться из фонового потока после того, как к нему был получен доступ из основного потока.»» После того, как я представлю текущий VC внутри основного потока, проблема не должна возникать.