I have an app that has been rejected sometimes now for the same reason – the app takes too long to start and is eventually killed by the IOS SPRINGBOARD Watchdog process. Here are the symbolized crash logs:
Code Type: ARM-64 (Native) Role: not user interface Parental process: start  Coalition: com.APPNAME  Date / time: 2019-05-29 05: 02: 06.8610 +0800 Start time: 2019-05-29 05: 01: 46.7020 +0800 OS Version: iPhone OS 12.2 (16E227) Baseband Version: 7.55.01 Report Version: 104 Exception type: EXC_CRASH (SEARCH) Exception code: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Cause of termination: Name space SPRINGBOARD, Code 0x8badf00d Termination Description: SPRINGBOARD, scene-create watchdog violation: com.APPNAME exhausted real (wall clock) time allowance in 19.56 seconds | ProcessVisibility: Foreground | ProcessState: Running | WatchdogEvent: scene-create | WatchdogVisibility: Foreground | WatchdogCPUStatistics: (| "Total CPU time (seconds) elapsed: 24,740 (uses 24,740, system 0.000), 41% CPU", | "Extended program CPU time (seconds): 0.491, 1% CPU" |) Triggered by wire: 0 Thread 0 Name: Dispatch Queue: com.apple.main thread Thread 0 Crashed: 0 libsystem_kernel.dylib 0x000000023704a0f4 0x237032000 + 98548 1 libsystem_kernel.dylib 0x00000002370495a0 0x237032000 + 95648 2 libdispatch.dylib 0x0000000236eaf880 0x236e98000 + 96384 3 libdispatch.dylib 0x0000000236eafd10 0x236e98000 + 97552 4 libxpc.dylib 0x000000023710ea04 0x237104000 + 43524 5 Security 0x000000023811fedc 0x2380f4000 + 179932 6 Security 0x000000023812045c 0x2380f4000 + 181340 7 Security 0x0000000238176414 0x2380f4000 + 533524 8 Security 0x00000002381752f4 0x2380f4000 + 529140 9 Security 0x0000000238173c60 0x2380f4000 + 523360 10 Security 0x00000002381745f4 0x2380f4000 + 525812 11 Security 0x000000023817631c 0x2380f4000 + 533276 12 Security 0x0000000238172284 0x2380f4000 + 516740 13 Security 0x00000002381749dc 0x2380f4000 + 526812 14 APPNAME 0x0000000100520700 Strongbox.data (forKey 🙂 + 411392 (Strongbox.swift: 140) 15 APPNAME 0x0000000100520034 Strongbox.unarchive (objectForKey 🙂 + 409652 (Strongbox.swift: 83) 16 APPNAME 0x000000010050939c Singleton.initializeVariablesStuff () + 316316 (Singleton.swift: 0) 17 APPNAME 0x0000000100582ec8 specialized AppDelegate.application (_: didFinishLaunchingWithOptions 🙂 + 814792 (AppDelegate.swift: 0) 18 APPNAME 0x000000010057f97c @objc AppDelegate.application (_: didFinishLaunchingWithOptions 🙂 + 801148 (
: 0) 19 UIKitCore 0x00000002635fc020 0x262d4a000 + 9117728 20 UIKitCore 0x00000002635fd784 0x262d4a000 + 9123716 21 UIKitCore 0x0000000263602f10 0x262d4a000 + 9146128 22 UIKitCore 0x0000000262ec7104 0x262d4a000 + 1560836 23 UIKitCore 0x0000000262ecf69c 0x262d4a000 + 1595036 24 UIKitCore 0x0000000262ec6d88 0x262d4a000 + 1559944 25 UIKitCore 0x0000000262ec7678 0x262d4a000 + 1562232 26 UIKitCore 0x0000000262ec59c4 0x262d4a000 + 1554884 27 UIKitCore 0x0000000262ec568c 0x262d4a000 + 1554060
I have a hard time trying to recreate the crash. I have symbolized the crash logs and it seems to be caused by iOS own guard profile that kills my app because it takes too long to start from
didFinishLaunchingWithOptions AppDelegate method. Looking at the symbolized crash logs, it seems that iOS own
Security takes too long to respond to the keychain requirements.
I make some key ring requests using the Strongbox library: https: // github .com / granoff / Strongbox
Strongbox.data (forKey 🙂 is the library's own method and line
SecItemCopyMatching (query, and data) is the latest from my app that request data from iOS keychain through Strongbox. But the keychain does not seem to respond to the app's requests in their test. I'm not sure how to copy this because this is not under the developer's control and seems to be on the IOS page.
I haven't been able to reproduce this on any of my devices or simulators. I also tried to put the keychain's accessibility to
kSecAttrAccessibleAfterFirstUnlock instead of the standard
kSecAttrAccessibleWhenUnlocked strongbox user and even that didn't help and crashed in the review.
Can anyone help?