GithubHelp home page GithubHelp logo

gameanalytics / ga-sdk-unity Goto Github PK

View Code? Open in Web Editor NEW
108.0 21.0 52.0 241.83 MB

The GameAnalytics SDK for tracking events in Unity.

License: MIT License

C# 7.59% Objective-C 2.27% C 86.69% JavaScript 3.45%

ga-sdk-unity's Introduction

openupm

GA-SDK-UNITY

GameAnalytics Unity SDK.

Documentation can be found here.

If you have any issues or feedback regarding the SDK, please contact our friendly support team here.

This is a custom package used with Unity Package Manager if you want the usual .unitypackage you can download it here.

OBS: If you want to use ILRD with the SDK and you are getting the SDK via UPM you need to download this .unitypackage here. This has to do with some dependency issues with the Ad SDKs which are not on UPM yet.

ℹ️ The Unity SDK include support for Windows, Mac, Linux, WebGL, iOS, tvOS, Tizen, UWP, Universal Windows 8 and Android.

Build size: Note that download size differ from the actual build size.

Android: The SDK build size in a native Android app is only around 49Kb and the dependencies take up to 820Kb depending if your app already uses some of the same dependencies.

iOS: The SDK build size in a native iOS app is only around 242Kb (armv7) / 259Kb (armv8).

Changelog

ga-sdk-unity's People

Contributors

ambivertoz avatar dorin-ga avatar dotsquid avatar jorge-martinez-scopely avatar ludovoodoo avatar mostafaberg avatar nikolajpedersen avatar pjc0247 avatar sanukin39 avatar seyahdoo avatar smillard avatar the1schwartz avatar tomsseisums avatar tristyn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ga-sdk-unity's Issues

Error in ILRD while building with latest Max version (6.2.1)

At some point, Applovin removed the CrossPromo class from its callbacks. Since the latest GA version (7.8.0) references it, the build fails with an error. Removing the event subscription from the script allowed the build to succeed without any issues.
image

Crash related to GameAnalytics

Here's the stack trace, we are getting quite some of these:

`Exception java.lang.Error: FATAL EXCEPTION [UnityMain]
Unity version : 2022.3.11f1
Device model : Xiaomi 21081111RG
Device fingerprint: Xiaomi/amber_eea/<US_FEMALE_NAME>:13/TP1A.220624.014/V14.0.6.0.TKWEUXM:user/release-keys
CPU supported ABI : [arm64-v8a, armeabi-v7a, armeabi]
Build Type : Release
Scripting Backend : IL2CPP
Libs loaded from : lib/arm64
Strip Engine Code : true

Caused by: java.lang.ArrayIndexOutOfBoundsException: length=4; index=256
at com.yahoo.sketches.quantiles.ItemsUpdateImpl.zipSize2KBuffer (ItemsUpdateImpl.java:90)
at com.yahoo.sketches.quantiles.ItemsUpdateImpl.inPlacePropagateCarry (ItemsUpdateImpl.java:52)
at com.yahoo.sketches.quantiles.ItemsUtil.processFullBaseBuffer (ItemsUtil.java:74)
at com.yahoo.sketches.quantiles.ItemsSketch.update (ItemsSketch.java:245)
at com.gameanalytics.sdk.state.GAState.lambda$logFPS$0$com-gameanalytics-sdk-state-GAState (GAState.java:169)
at com.gameanalytics.sdk.state.GAState$$ExternalSyntheticLambda0.onAnimationUpdate
at android.animation.ValueAnimator.animateValue (ValueAnimator.java:1653)
at android.animation.ValueAnimator.animateBasedOnTime (ValueAnimator.java:1440)
at android.animation.ValueAnimator.doAnimationFrame (ValueAnimator.java:1572)
at android.animation.AnimationHandler.doAnimationFrame (AnimationHandler.java:307)
at android.animation.AnimationHandler.-$$Nest$mdoAnimationFrame
at android.animation.AnimationHandler$1.doFrame (AnimationHandler.java:86)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1384)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1394)
at android.view.Choreographer.doCallbacks (Choreographer.java:1013)
at android.view.Choreographer.doFrame (Choreographer.java:904)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1366)
at android.os.Handler.handleCallback (Handler.java:942)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loopOnce (Looper.java:211)
at android.os.Looper.loop (Looper.java:300)
at com.unity3d.player.UnityPlayer$F.run`

Unity 2022.3.11
GA: v7.4.2.1

Gameanalytics for Mac builds

Screenshot 2024-04-03 121547

As shown in the picture, documentation shows it like Unity and Unreal does not support Mac environment, while other engines does. Is this the case? When I searched it up a bit I couldn't find anything in the docs but found some issue related to this in 2020

GameAnalytics/GA-SDK-C-SHARP#44

Just wanted to clarify before using GA. Thanks

iOS Crashes After "Allow" or "Ask App Not to Track" IDFA Consent Dialog

When the IDFA Consent Dialog is shown by GameAnalytics and the player chooses "Allow" or "Ask App Not to Track", the iOS Unity App crashes immediately. But It remembers what the player has chosen. If the player opens the game after crash, the IDFA Consent Dialog is not shown. Therefore, there is no crash. The game normally continues its lifetime.

iOS_IDFA_Dialog

I already added the "NSUserTrackingUsageDescription" property key as you can see above. The IDFA Consent Dialog shows it. If I do not add this property key, the app crashes and shows a log output in the XCode Console.
I also wrote a code for adding "NSUserTrackingUsageDescription" property key to Info.plist. You can put this in your SDK or Docs if you want.

Adding "NSUserTrackingUsageDescription" key to Info.plist inside Unity for IDFA Consent Dialog to show:

using System.IO;
using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using UnityEditor.iOS.Xcode;
using UnityEngine;

namespace Editor.PostProcessBuild.IOSPostProcessBuild
{
    public class SetInfoPlistIOSPostProcessBuild : IPostprocessBuildWithReport
    {
        public int callbackOrder => 100;

        public void OnPostprocessBuild(BuildReport report)
        {
            Debug.LogFormat($"{nameof(SetInfoPlistIOSPostProcessBuild)} - {nameof(OnPostprocessBuild)} for target " +
                            $"{report.summary.platform} and path {report.summary.outputPath}");

            if (report.summary.platform == BuildTarget.iOS)
            {
                // Get plist
                string plistPath = report.summary.outputPath + "/Info.plist";
                PlistDocument plist = new PlistDocument();
                plist.ReadFromString(File.ReadAllText(plistPath));
                
                // Get root
                PlistElementDict rootDict = plist.root;

                rootDict.SetString("NSUserTrackingUsageDescription",
                    "Your data will be used to measure advertising efficiency");
                
                // Write to file
                File.WriteAllText(plistPath, plist.WriteToString());
            }
        }
    }
}

If the player disables its Tracking, the app normally starts without crashing because the IDFA Consent Dialog is not shown.
iOS_Tracking_Option

XCode Version: 15.1
Cocoapods Version: 1.14.3
macOS Version: macOS 14 - Sonoma
GameAnalytics Version: 7.7.2
Unity Version: 2022.3.2f1 LTS
iPhone Model Name: iPhone 11
iOS Version: 17.2.1

Also tested in another iPhone Model and iOS Version. The Unity app crashes as previously.
iPhone Model Name: iPhone XS
iOS Version: 16.1.1

Here is the result of "lldb thread backtrace all":

* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGTRAP
  * frame #0: 0x00000001e3975b48 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001e3988008 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001e3988248 libsystem_kernel.dylib`mach_msg_overwrite + 388
    frame #3: 0x00000001e397608c libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x00000001a6df2af0 CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x00000001a6df3d34 CoreFoundation`__CFRunLoopRun + 1232
    frame #6: 0x00000001a6df8ed4 CoreFoundation`CFRunLoopRunSpecific + 612
    frame #7: 0x00000001e00f6368 GraphicsServices`GSEventRunModal + 164
    frame #8: 0x00000001a92d73d0 UIKitCore`-[UIApplication _run] + 888
    frame #9: 0x00000001a92d7034 UIKitCore`UIApplicationMain + 340
    frame #10: 0x00000001109737a0 UnityFramework`-[UnityFramework runUIApplicationMainWithArgc:argv:](self=<unavailable>, _cmd=<unavailable>, argc=1, argv=0x000000016d5ef888) at main.mm:96:5 [opt]
    frame #11: 0x000000010281812c [Game-Name]`main(argc=<unavailable>, argv=<unavailable>) at main.mm:26:9 [opt]
    frame #12: 0x00000001c5460960 dyld`start + 2528
  thread #5, queue = 'com.apple.root.default-qos', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0000000110bc96bc UnityFramework`::VerifyFileTextureUploadCompletion() at Texture.cpp:609:32 [opt]
    frame #1: 0x0000000110b75fd0 UnityFramework`::VerifyFileTextureUploadCompletion() at Texture2D.cpp:390:38 [opt]
    frame #2: 0x0000000110b76078 UnityFramework`::AwakeFromLoad() at Texture2D.cpp:407:9 [opt]
    frame #3: 0x0000000110d7ab20 UnityFramework`::InvokePersistentManagerAwake() at AwakeFromLoadQueue.cpp:510:14 [opt]
    frame #4: 0x0000000110d7a924 UnityFramework`::PersistentManagerAwakeFromLoad() at AwakeFromLoadQueue.cpp:326:5 [opt]
    frame #5: 0x0000000110d7d664 UnityFramework`::IntegrateAllThreadedObjects() [inlined] PersistentManagerAwakeFromLoad at AwakeFromLoadQueue.cpp:198:9 [opt]
    frame #6: 0x0000000110d7d650 UnityFramework`::IntegrateAllThreadedObjects() at PersistentManager.cpp:1324:16 [opt]
    frame #7: 0x0000000110d7def8 UnityFramework`::LoadAndIntegrateAllPreallocatedObjects() at PersistentManager.cpp:1473:9 [opt]
    frame #8: 0x0000000110d7e410 UnityFramework`::ReadObject() at PersistentManager.cpp:1586:5 [opt]
    frame #9: 0x0000000110cfc2fc UnityFramework`::Load() [inlined] operator Object * at PPtr.h:224:16 [opt]
    frame #10: 0x0000000110cfc2b0 UnityFramework`::Load() at Resources.bindings.cpp:44:18 [opt]
    frame #11: 0x0000000110a62764 UnityFramework`::ResourcesAPIInternal_CUSTOM_Load() at CoreBindings.gen.cpp:58748:86 [opt]
    frame #12: 0x000000011252b654 UnityFramework`GameAnalytics_InitAPI_m1DB6D5A6D7934FD679565E1E74CE1A0423B45664(method=<unavailable>) at GameAnalyticsSDK.cpp:2757:9 [opt]
    frame #13: 0x000000011252c280 UnityFramework`::GameAnalytics_InternalInitialize_m8FAC7AAA2FA17D99067A478A5433CEB3BD4066B9(const RuntimeMethod *) [inlined] GameAnalytics_get_SettingsGA_m97901658930736D6802661879D68D4966AFA4A83(method=<unavailable>) at GameAnalyticsSDK.cpp:2472:3 [opt]
    frame #14: 0x000000011252c22c UnityFramework`GameAnalytics_InternalInitialize_m8FAC7AAA2FA17D99067A478A5433CEB3BD4066B9(method=<unavailable>) at GameAnalyticsSDK.cpp:2826:9 [opt]
    frame #15: 0x000000011252deb4 UnityFramework`GameAnalytics_Initialize_m683B482D7F96204DB085494C0474A9403DF08A4F(method=<unavailable>) at GameAnalyticsSDK.cpp:3167:3 [opt]
    frame #16: 0x00000001118f533c UnityFramework`::ReversePInvokeWrapper_GameAnalyticsATTClient_GameAnalyticsATTListenerAuthorized_m639F434064323155AA5CF6AFD9110AF0C9AD3C98() at GameAnalyticsSDK.cpp:14046:2 [opt]
    frame #17: 0x00000001c35670fc TCC`__TCCAccessRequest_block_invoke_7 + 400
    frame #18: 0x00000001c35641fc TCC`__tccd_send_message_block_invoke + 624
    frame #19: 0x00000001f3e38f1c libxpc.dylib`_xpc_connection_reply_callout + 124
    frame #20: 0x00000001f3e2bfb4 libxpc.dylib`_xpc_connection_call_reply_async + 88
    frame #21: 0x00000001ae35205c libdispatch.dylib`_dispatch_client_callout3 + 20
    frame #22: 0x00000001ae36ff58 libdispatch.dylib`_dispatch_mach_msg_async_reply_invoke + 344
    frame #23: 0x00000001ae3647cc libdispatch.dylib`_dispatch_kevent_worker_thread + 1280
    frame #24: 0x00000001f3dd7e30 libsystem_pthread.dylib`_pthread_wqthread + 344
  thread #6
    frame #0: 0x00000001e3976050 libsystem_kernel.dylib`__workq_kernreturn + 8
  thread #7, name = 'AssetGarbageCollectorHelper'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000103915960), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103915960)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103915960)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c0c2cc UnityFramework`::Run() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c0c2c4 UnityFramework`::Run() [inlined] WaitForSignalNoProfile at Semaphore.h:33:13 [opt]
    frame #8: 0x0000000110c0c2c4 UnityFramework`::Run() at GarbageCollectSharedAssets.cpp:272:20 [opt]
    frame #9: 0x0000000110c1024c UnityFramework`::RunThread() at GarbageCollectSharedAssets.cpp:249:23 [opt]
    frame #10: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #11: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #8, name = 'AssetGarbageCollectorHelper'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000103915bf0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103915bf0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103915bf0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c0c2cc UnityFramework`::Run() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c0c2c4 UnityFramework`::Run() [inlined] WaitForSignalNoProfile at Semaphore.h:33:13 [opt]
    frame #8: 0x0000000110c0c2c4 UnityFramework`::Run() at GarbageCollectSharedAssets.cpp:272:20 [opt]
    frame #9: 0x0000000110c1024c UnityFramework`::RunThread() at GarbageCollectSharedAssets.cpp:249:23 [opt]
    frame #10: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #11: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #9, name = 'AssetGarbageCollectorHelper'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000103a0b180), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103a0b180)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103a0b180)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c0c2cc UnityFramework`::Run() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c0c2c4 UnityFramework`::Run() [inlined] WaitForSignalNoProfile at Semaphore.h:33:13 [opt]
    frame #8: 0x0000000110c0c2c4 UnityFramework`::Run() at GarbageCollectSharedAssets.cpp:272:20 [opt]
    frame #9: 0x0000000110c1024c UnityFramework`::RunThread() at GarbageCollectSharedAssets.cpp:249:23 [opt]
    frame #10: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #11: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #10, name = 'AssetGarbageCollectorHelper'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000103915e80), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103915e80)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103915e80)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c0c2cc UnityFramework`::Run() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c0c2c4 UnityFramework`::Run() [inlined] WaitForSignalNoProfile at Semaphore.h:33:13 [opt]
    frame #8: 0x0000000110c0c2c4 UnityFramework`::Run() at GarbageCollectSharedAssets.cpp:272:20 [opt]
    frame #9: 0x0000000110c1024c UnityFramework`::RunThread() at GarbageCollectSharedAssets.cpp:249:23 [opt]
    frame #10: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #11: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #11, name = 'AssetGarbageCollectorHelper'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000103916110), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103916110)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000103916110)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c0c2cc UnityFramework`::Run() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c0c2c4 UnityFramework`::Run() [inlined] WaitForSignalNoProfile at Semaphore.h:33:13 [opt]
    frame #8: 0x0000000110c0c2c4 UnityFramework`::Run() at GarbageCollectSharedAssets.cpp:272:20 [opt]
    frame #9: 0x0000000110c1024c UnityFramework`::RunThread() at GarbageCollectSharedAssets.cpp:249:23 [opt]
    frame #10: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #11: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #12, name = 'com.apple.uikit.eventfetch-thread'
    frame #0: 0x00000001e3975b48 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001e3988008 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001e3988248 libsystem_kernel.dylib`mach_msg_overwrite + 388
    frame #3: 0x00000001e397608c libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x00000001a6df2af0 CoreFoundation`__CFRunLoopServiceMachPort + 160
    frame #5: 0x00000001a6df3d34 CoreFoundation`__CFRunLoopRun + 1232
    frame #6: 0x00000001a6df8ed4 CoreFoundation`CFRunLoopRunSpecific + 612
    frame #7: 0x00000001a11a6334 Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
    frame #8: 0x00000001a11a621c Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 64
    frame #9: 0x00000001a940c33c UIKitCore`-[UIEventFetcher threadMain] + 436
    frame #10: 0x00000001a11bf808 Foundation`__NSThread__start__ + 716
    frame #11: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #13, name = 'GC Finalizer'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111fb2858 UnityFramework`il2cpp_baselib::Baselib_SystemSemaphore_Acquire(il2cpp_baselib::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000282c3cfa8), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111fb284c UnityFramework`il2cpp_baselib::Baselib_SystemSemaphore_Acquire(il2cpp_baselib::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000282c3cfa8)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111fb284c UnityFramework`il2cpp_baselib::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000282c3cfa8)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000111f53a20 UnityFramework`il2cpp::os::WaitObject::ConditionWait(il2cpp::os::ThreadImpl*) [inlined] Baselib_CappedSemaphore_Acquire(semaphore=0x0000000282c3cf68) at Baselib_CappedSemaphore_SemaphoreBased.inl.h:44:5 [opt]
    frame #7: 0x0000000111f53a18 UnityFramework`il2cpp::os::WaitObject::ConditionWait(il2cpp::os::ThreadImpl*) [inlined] baselib::il2cpp_baselib::CappedSemaphore::Acquire(this=0x0000000282c3cf68) at CappedSemaphore.h:56:24 [opt]
    frame #8: 0x0000000111f53a18 UnityFramework`il2cpp::os::WaitObject::ConditionWait(il2cpp::os::ThreadImpl*) [inlined] il2cpp::os::ThreadImpl::AcquireSemaphore(this=0x0000000282c3cee0) at ThreadImpl.h:53:55 [opt]
    frame #9: 0x0000000111f53a18 UnityFramework`il2cpp::os::WaitObject::ConditionWait(this=0x0000000283b3d780, thread=0x0000000282c3cee0) at WaitObject.cpp:227:17 [opt]
    frame #10: 0x0000000111f536c4 UnityFramework`il2cpp::os::WaitObject::Wait(this=0x0000000283b3d780, timeoutMS=4294967295, interruptible=false) at WaitObject.cpp:109:25 [opt]
    frame #11: 0x0000000111f2c2c8 UnityFramework`il2cpp::gc::FinalizerThread(arg=<unavailable>) at GarbageCollector.cpp:102:34 [opt]
    frame #12: 0x0000000111f518a8 UnityFramework`il2cpp::os::Thread::RunWrapper(arg=0x0000000281136420) at Thread.cpp:201:9 [opt]
    frame #13: 0x0000000111f552f0 UnityFramework`il2cpp::os::ThreadImpl::ThreadStartWrapper(arg=0x0000000282c3cee0) at ThreadImpl.cpp:123:9 [opt]
    frame #14: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #14, name = 'Job.worker 0'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba0040), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba0040)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba0040)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #15, name = 'Job.worker 1'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba0070), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba0070)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba0070)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #16, name = 'Job.worker 2'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba00a0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba00a0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba00a0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #17, name = 'Job.worker 3'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba00d0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba00d0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba00d0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #18, name = 'Job.worker 4'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba0100), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba0100)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba0100)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #19, name = 'Background Job.worker 0'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba8220), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba8220)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba8220)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #20, name = 'Background Job.worker 1'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba9870), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba9870)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba9870)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #21, name = 'Background Job.worker 2'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281baa2c0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281baa2c0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281baa2c0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #22, name = 'Background Job.worker 3'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281baa680), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281baa680)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281baa680)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #23, name = 'Background Job.worker 4'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281bab0d0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281bab0d0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281bab0d0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #24, name = 'Background Job.worker 5'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba8b80), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba8b80)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba8b80)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #25, name = 'Background Job.worker 6'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba97b0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba97b0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba97b0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #26, name = 'Background Job.worker 7'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281bab970), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281bab970)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281bab970)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #27, name = 'Background Job.worker 8'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba9720), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba9720)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba9720)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #28, name = 'Background Job.worker 9'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba9db0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba9db0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba9db0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #29, name = 'Background Job.worker 10'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281baada0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281baada0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281baada0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #30, name = 'Background Job.worker 11'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba8700), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba8700)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba8700)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #31, name = 'Background Job.worker 12'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba9600), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba9600)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba9600)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #32, name = 'Background Job.worker 13'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281bab040), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281bab040)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281bab040)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #33, name = 'Background Job.worker 14'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba8580), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba8580)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba8580)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #34, name = 'Background Job.worker 15'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000281ba99c0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba99c0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000281ba99c0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110c08e78 UnityFramework`::lane_guts() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110c08e70 UnityFramework`::lane_guts() [inlined] Wait at syncprim.h:93:9 [opt]
    frame #8: 0x0000000110c08e70 UnityFramework`::lane_guts() at ujobs.cpp:1094:30 [opt]
    frame #9: 0x0000000110c0968c UnityFramework`::worker_thread_routine() [inlined] lane_run_loop at ujobs.cpp:1140:9 [opt]
    frame #10: 0x0000000110c09650 UnityFramework`::worker_thread_routine() at ujobs.cpp:1165:5 [opt]
    frame #11: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #12: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #35, name = 'BatchDeleteObjects'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000283e202f0), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000283e202f0)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000283e202f0)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110cd97f4 UnityFramework`::HandleOutOfBufferToReadFrom() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110cd97ec UnityFramework`::HandleOutOfBufferToReadFrom() [inlined] WaitForSignal at Semaphore.h:23:13 [opt]
    frame #8: 0x0000000110cd97ec UnityFramework`::HandleOutOfBufferToReadFrom() at ThreadedStreamBuffer.cpp:311:27 [opt]
    frame #9: 0x0000000110c0bb58 UnityFramework`::BatchDeleteStep2Threaded() at BatchDeleteObjects.cpp:93:48 [opt]
    frame #10: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #11: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #36, name = 'Loading.AsyncRead'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x00000001040dcf20), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x00000001040dcf20)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x00000001040dcf20)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110b47ae4 UnityFramework`::ThreadEntry() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110b47adc UnityFramework`::ThreadEntry() [inlined] WaitForSignal at Semaphore.h:23:13 [opt]
    frame #8: 0x0000000110b47adc UnityFramework`::ThreadEntry() at AsyncReadManagerThreaded.cpp:307:21 [opt]
    frame #9: 0x0000000110b47604 UnityFramework`::StaticThreadEntry() at AsyncReadManagerThreaded.cpp:115:14 [opt]
    frame #10: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #11: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #37, name = 'UnityGfxDeviceWorker'
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x00000001ae352578 libdispatch.dylib`_dispatch_sema4_wait + 28
    frame #2: 0x00000001ae352c2c libdispatch.dylib`_dispatch_semaphore_wait_slow + 132
    frame #3: 0x0000000111539b58 UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::detail::Acquire(_semaphore=(handle = 0x0000000283e22120), timeout=18446744073709551615) at Baselib_SystemSemaphore_DarwinApi.inl.h:36:24 [opt]
    frame #4: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(UnityClassic::Baselib_SystemSemaphore_Handle) [inlined] DarwinApi::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000283e22120)) at Baselib_SystemSemaphore_DarwinApi.inl.h:62:34 [opt]
    frame #5: 0x0000000111539b4c UnityFramework`UnityClassic::Baselib_SystemSemaphore_Acquire(semaphore=(handle = 0x0000000283e22120)) at Baselib_SystemSemaphore_CProxy.inl.h:19:16 [opt]
    frame #6: 0x0000000110cd97f4 UnityFramework`::HandleOutOfBufferToReadFrom() [inlined] Baselib_Semaphore_Acquire at Baselib_Semaphore_SemaphoreBased.inl.h:52:5 [opt]
    frame #7: 0x0000000110cd97ec UnityFramework`::HandleOutOfBufferToReadFrom() [inlined] WaitForSignal at Semaphore.h:23:13 [opt]
    frame #8: 0x0000000110cd97ec UnityFramework`::HandleOutOfBufferToReadFrom() at ThreadedStreamBuffer.cpp:311:27 [opt]
    frame #9: 0x000000011132601c UnityFramework`::RunCommand() at GfxDeviceWorker.cpp:381:29 [opt]
    frame #10: 0x00000001113b8880 UnityFramework`GfxDeviceWorkerAutoreleasePoolProxy at GfxDeviceMetal.mm:5648:18 [opt]
    frame #11: 0x0000000111325f50 UnityFramework`::RunExt() at GfxDeviceWorker.cpp:375:5 [opt]
    frame #12: 0x0000000111325afc UnityFramework`::RunGfxDeviceWorker() at GfxDeviceWorker.cpp:332:42 [opt]
    frame #13: 0x0000000110cd80c8 UnityFramework`::RunThreadWrapper() at Thread.cpp:107:14 [opt]
    frame #14: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #38
    frame #0: 0x00000001e3975ac4 libsystem_kernel.dylib`semaphore_wait_trap + 8
    frame #1: 0x000000011188adec UnityFramework`FMOD_OS_Semaphore_Wait(FMOD_OS_SEMAPHORE*) + 16
    frame #2: 0x00000001118a7894 UnityFramework`FMOD::Thread::callback(void*) + 132
    frame #3: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148
  thread #39, name = 'AURemoteIO::IOThread'
    frame #0: 0x00000001e3975b48 libsystem_kernel.dylib`mach_msg2_trap + 8
    frame #1: 0x00000001e3988008 libsystem_kernel.dylib`mach_msg2_internal + 80
    frame #2: 0x00000001e3988248 libsystem_kernel.dylib`mach_msg_overwrite + 388
    frame #3: 0x00000001e397608c libsystem_kernel.dylib`mach_msg + 24
    frame #4: 0x000000020da252ac libEmbeddedSystemAUs.dylib`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, AURemoteIO::IOThread::IOThread(AURemoteIO&, caulk::thread::attributes const&, caulk::mach::os_workgroup_managed const&)::'lambda'(), std::__1::tuple<>>>(void*) + 556
    frame #5: 0x00000001f3dd86cc libsystem_pthread.dylib`_pthread_start + 148

AdEvents are not sent in WebGL build

Somewhy AdEvents sending is not implemented for WebGL builds.
I've fixed that and made a pull request: #25

I also suggest to provide warning/errors in the wrappers for not implemented methods. Notification sounds better for me as opposed to silent fail.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.