Hi,
My company has a few different AR apps using Vuforia, and in the last few weeks, despite the apps working perfectly on every device we've tested it on, every app we've tried to submit and update for has failed app review with this error (app names and identifiers anonymized):
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d
Termination Description: SPRINGBOARD, scene-update watchdog transgression: com.companyname.appname exhausted real (wall clock) time allowance of 10.00 seconds | | ProcessVisibility: Foreground | ProcessState: Running | WatchdogEvent: scene-update | WatchdogVisibility: Foreground | WatchdogCPUStatistics: ( | "Elapsed total CPU time (seconds): 38.400 (user 38.400, system 0.000), 71% CPU", | "Elapsed application CPU time (seconds): 24.948, 46% CPU" | )
Triggered by Thread: 0
After symbolicating the crash logs provided by apple, each one has the same call stack in the crashing thread (thread 0):
0 libsystem_pthread.dylib 0x0000000182a937cc pthread_mutex_lock$VARIANT$mp + 104 (pthread_mutex.c:178)
1 appname 0x0000000101e58edc Vuforia::init+ 22712028 () + 260
2 appname 0x0000000101e2ce74 initQCARiOS + 22531700 (VuforiaUnityPlayer.mm:83)
3 appname 0x0000000100f73468 IOSUnityPlayer_InitializeVuforia_m2342214426 + 7091304 (Bulk_Vuforia.UnityExtensions_1.cpp:29573)
4 appname 0x0000000100fa97e8 VuforiaRuntime_InitVuforia_m64948871 + 7313384 (Bulk_Vuforia.UnityExtensions_2.cpp:37434)
5 appname 0x0000000101245a18 RuntimeInvoker_Void_t1185182177(void (*)(), MethodInfo const*, void*, void**) + 10050072 (Il2CppInvokerTable.cpp:32163)
6 appname 0x0000000101e1bf5c il2cpp::vm::Runtime::Invoke(MethodInfo const*, void*, void**, Il2CppException**) + 22462300 (Runtime.cpp:469)
7 appname 0x0000000101656ca8 scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool) + 14314664 (ScriptingApi_Il2Cpp.cpp:216)
8 appname 0x000000010165dc74 ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool) + 14343284 (ScriptingInvocation.cpp:329)
9 appname 0x000000010158eff4 RuntimeInitializeOnLoadManager::ExecuteInitializeOnLoad(std::__1::vector<int, stl_allocator<int, (MemLabelIdentifier)13, 16> >) + 13496308 (RuntimeInitializeOnLoadManager.cpp:363)
10 appname 0x000000010158eeb8 RuntimeInitializeOnLoadManager::ExecuteInitializeOnLoad(RuntimeInitializeLoadType) + 13495992 (RuntimeInitializeOnLoadManager.cpp:356)
11 appname 0x00000001015abc60 LoadSceneOperation::IntegrateMainThread() + 13614176 (LoadSceneOperation.cpp:395)
12 appname 0x00000001015aca20 PreloadManager::UpdatePreloadingSingleStep(PreloadManager::UpdatePreloadingFlags, int) + 13617696 (PreloadManager.cpp:459)
13 appname 0x00000001015acf6c PreloadManager::WaitForAllAsyncOperationsToComplete() + 13619052 (PreloadManager.cpp:542)
14 appname 0x00000001015aeb94 RuntimeSceneManager::LoadScene(core::basic_string<char, core::StringStorageDefault<char> > const&, core::basic_string<char, core::StringStorageDefault<char> > const&, core::basic_string<char, core::StringStorageDefault<char> > const&, UnityGUID const&, int, RuntimeSceneManager::LoadingMode) + 13626260 (SharedObject.h:110)
15 appname 0x0000000101580a34 PlayerStartFirstScene(bool) + 13437492 (Player.cpp:492)
16 appname 0x000000010138198c UnityLoadApplication + 11344268 (LibEntryPoint.mm:209)
17 appname 0x00000001008cb4f4 -[UnityAppController startUnity:] + 111860 (UnityAppController.mm:133)
18 Foundation 0x000000018384bd58 __NSFireDelayedPerform + 412 (NSRunLoop.m:620)
19 CoreFoundation 0x0000000182e0fdc0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28 (CFRunLoop.c:1832)
20 CoreFoundation 0x0000000182e0fae4 __CFRunLoopDoTimer + 864 (CFRunLoop.c:2415)
21 CoreFoundation 0x0000000182e0f2e4 __CFRunLoopDoTimers + 248 (CFRunLoop.c:2562)
22 CoreFoundation 0x0000000182e0cecc __CFRunLoopRun + 1928 (CFRunLoop.c:3083)
23 CoreFoundation 0x0000000182d2cc58 CFRunLoopRunSpecific + 436 (CFRunLoop.c:3245)
24 GraphicsServices 0x0000000184bd8f84 GSEventRunModal + 100 (GSEvent.c:2245)
25 UIKit 0x000000018c4855c4 UIApplicationMain + 236 (UIApplication.m:3956)
26 appname 0x00000001008b6c70 main + 27760 (main.mm:33)
27 libdyld.dylib 0x000000018284c56c start + 4
It seems that for some reason on the testing devices that Apple is using, each one is taking longer than 10 seconds on a mutex lock called from Vuforia::init+ 22712028 () + 260 and they being terminated. Our apps do have a lot of trackables, so I'm not sure if that's the problem, or whether there is something else happening here (querying an internet service for license key confirmation?) which could be causing the problem.
Does anyone have any ideas how to resolve this problem?
Cheers,
Adrian
Hello all,
I have posted an update to the package we have stickied here to include the updated code @adrianj has provided. Thanks again for your assistance with this issue Adrian!
Thanks,
Vuforia Support