Мы портировали наше приложение из UIWebView в WkWebView.
С тех пор приложение время от времени происходит сбой (иногда через минуты, иногда через часы, иногда вообще нет), находясь в фоновом режиме.
Просмотрпо причине прекращения 0x8badf00d (см. отчет о сбое ниже) и документации разработчика Apple ( Понимание и анализ отчетов о сбоях приложений ) сбой, по-видимому, связан с тайм-аутом сторожевого таймера.
Единственная задача, которую мы выполняемначать в нашем коде, в то время как приложение переходит в фоновый режим, встраивается в соответствующие вызовы UIApplication.SharedApplication.BeginBackgroundTask и UIApplication.SharedApplication.EndBackgroundTask.Эта задача представляет собой сетевой запрос, который не выполняется в основном потоке пользовательского интерфейса и выполняется в течение секунды.
При этом я предполагаю, что сбой связан с проблемой WebKit / JavaScriptCore.
Кто-нибудь еще сталкивался с такими сбоями (тип исключения EXC_BAD_ACCESS (SIGKILL) и причина завершения Namespace ASSERTIOND, код 0x8badf00d) и может предоставить какой-либо конкретный совет о том, как их избежать?
Заранее большое спасибо и наилучшие пожелания!
Марио.
Incident Identifier: 2084FF7B-EDFB-41D4-849F-E03F75335214
CrashReporter Key: 0af317c4eee2f011df0e1a9fc253199241998699
Hardware Model: iPhone10,6
Process: App [1798]
Path: /private/var/containers/Bundle/Application/A4FF0F47-4ED6-4A97-8F15-E6AC432FC62D/App.app/App
Identifier: com.abc.app
Version: 7000025 (7.0.25)
Code Type: ARM-64 (Native)
Role: Non UI
Parent Process: launchd [1]
Coalition: com.abc.app [792]
Date/Time: 2019-03-20 10:15:43.9491 +0100
Launch Time: 2019-03-20 09:55:44.7537 +0100
OS Version: iPhone OS 12.1.4 (16D57)
Baseband Version: 2.02.51
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGKILL)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
VM Region Info: 0 is not in any region. Bytes before following region: 4370874368
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
__TEXT 0000000104864000-0000000105bdc000 [ 19.5M] r-x/r-x SM=COW ...honeMobileiOS
Termination Reason: Namespace ASSERTIOND, Code 0x8badf00d
Triggered by Thread: 0
Thread 0 name: tid_303 Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00000001841bef0c __psynch_cvwait + 8
1 libsystem_pthread.dylib 0x0000000184241410 _pthread_cond_wait$VARIANT$armv81 + 620
2 JavaScriptCore 0x000000018b95b7d8 WTF::ThreadCondition::timedWait+ 305112 (WTF::Mutex&, WTF::WallTime) + 148
3 JavaScriptCore 0x000000018b9429a0 WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void + 203168 ()> const&, WTF::TimeWithDynamicClockType const&) + 2004
4 JavaScriptCore 0x000000018b91c2e4 bool WTF::Condition::waitUntil<WTF::Lock>+ 45796 (WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 184
5 JavaScriptCore 0x000000018b920010 WTF::BinarySemaphore::wait+ 61456 (WTF::TimeWithDynamicClockType) + 112
6 WebKit 0x000000019400a2b0 IPC::Connection::waitForSyncReply+ 455344 (unsigned long long, WTF::Seconds, WTF::OptionSet<IPC::SendSyncOption>) + 276
7 WebKit 0x0000000194009af8 IPC::Connection::sendSyncMessage+ 453368 (unsigned long long, std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >, WTF::Seconds, WTF::OptionSet<IPC::SendSyncOption>) + 416
8 WebKit 0x00000001942cac3c bool IPC::Connection::sendSync<Messages::WebProcess::ProcessWillSuspendImminently>+ 3341372 (Messages::WebProcess::ProcessWillSuspendImminently&&, Messages::WebProcess::ProcessWillSuspendImminently::Reply&&, unsigned long long, WTF::Seconds, WTF::OptionSet<IPC::SendSyncOption>) + 176
9 WebKit 0x00000001942c5a70 bool WebKit::ChildProcessProxy::sendSync<Messages::WebProcess::ProcessWillSuspendImminently>+ 3320432 (Messages::WebProcess::ProcessWillSuspendImminently&&, Messages::WebProcess::ProcessWillSuspendImminently::Reply&&, unsigned long long, WTF::Seconds, WTF::OptionSet<IPC::SendSyncOption>) + 120
10 WebKit 0x00000001942c59e8 WebKit::WebProcessProxy::sendProcessWillSuspendImminently+ 3320296 () + 76
11 WebKit 0x0000000193fafabc -[WKProcessAssertionBackgroundTaskManager _notifyClientsOfImminentSuspension] + 72
12 WebKit 0x00000001940ea7fc __64-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]_block_invoke + 168
13 UIKitCore 0x00000001b1801a8c _fireBackgroundExpirationHandlers + 300
14 FrontBoardServices 0x0000000187057504 __69-[FBSUIApplicationWorkspace clientHandleAssertionExpirationImminent:]_block_invoke + 76
15 FrontBoardServices 0x000000018706ae94 __40-[FBSWorkspace _performDelegateCallOut:]_block_invoke + 64
16 libdispatch.dylib 0x0000000184062484 _dispatch_client_callout + 16
17 libdispatch.dylib 0x00000001840393e0 _dispatch_block_invoke_direct$VARIANT$armv81 + 216
18 FrontBoardServices 0x000000018709fa9c __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 40
19 FrontBoardServices 0x000000018709f728 -[FBSSerialQueue _performNext] + 416
20 FrontBoardServices 0x000000018709fd44 -[FBSSerialQueue _performNextFromRunLoopSource] + 56
21 CoreFoundation 0x00000001845ba0e0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
22 CoreFoundation 0x00000001845ba060 __CFRunLoopDoSource0 + 88
23 CoreFoundation 0x00000001845b9944 __CFRunLoopDoSources0 + 176
24 CoreFoundation 0x00000001845b4810 __CFRunLoopRun + 1040
25 CoreFoundation 0x00000001845b40e0 CFRunLoopRunSpecific + 436
26 GraphicsServices 0x000000018682d584 GSEventRunModal + 100
27 UIKitCore 0x00000001b1804c00 UIApplicationMain + 212
28 Xamarin.Sdk 0x0000000106da9518 0x106224000 + 12080408
29 Xamarin.Sdk 0x0000000106cfac8c 0x106224000 + 11365516
30 Xamarin.Sdk 0x0000000106cfac4c 0x106224000 + 11365452
31 App 0x00000001049cf7fc App_Application_Main_string__ + 1488892 (/<unknown>:1)
32 Xamarin.Sdk 0x0000000106526bb8 0x106224000 + 3156920
33 Mono 0x0000000105fd7374 mono_jit_runtime_invoke + 904
34 Mono 0x000000010605d1a0 mono_runtime_invoke_checked + 148
35 Mono 0x0000000106063084 mono_runtime_exec_main_checked + 120
36 Mono 0x0000000105fb6c1c mono_jit_exec + 268
37 Xamarin 0x0000000105d76cc8 xamarin_main + 1132
38 App 0x00000001049c8e4c main + 1461836 (main.m:155)
39 libdyld.dylib 0x0000000184072bb4 start + 4