[Apple Watch] Crash when attempting to use Digital Crown but ONLY if published in Store

MentosanMentosan DEUniversity ✭✭

Hello

I am facing a very strange problem: when running locally in Simulator or deployed as AdHoc via HockeyApp my little Apple Watch app works perfectly.
I have published it to Store and it still works fine except a crash when I attempt to use the Digital Crown.

Below the crash log excerpt (no idea what a 'trampoline' means in this context):

Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0

Application Specific Information:
abort() called

Filtered syslog:
None found

Last Exception Backtrace:
0 CoreFoundation 0x1be535e8 exceptionPreprocess + 124
1 libobjc.A.dylib 0x1b1b317c objc_exception_throw + 33
2 PTMate.Watch.WatchOSExtension 0x0174a3ac xamarin_process_managed_exception + 22913964 (runtime.m:2291)
3 PTMate.Watch.WatchOSExtension 0x00179f5e native_to_managed_trampoline_12(objc_object*, objc_selector*, _MonoMethod**, WKCrownSequencer*, double, unsigned int) + 40798 (registrar.m:531)
4 PTMate.Watch.WatchOSExtension 0x00179e0a -[InfoController crownDidRotate:rotationalDelta:] + 40458 (registrar.m:2179)
5 WatchKit 0x2b5b5a76 __36-[WKCrownSequencer handleCrownTask:]_block_invoke.29 + 47
6 WatchKit 0x2b5c4c6a spUtils_dispatchAsyncToMainThread + 19
7 WatchKit 0x2b5b59ec -[WKCrownSequencer handleCrownTask:] + 867
8 WatchKit 0x2b5c33b0 -[WKInterfaceController handleCrownTask:] + 63
9 WatchKit 0x2b5aef18 -[SPRemoteInterface interfaceViewController:crownData:] + 125
10 SockPuppetGizmo 0x2c55cd2c __62-[SPCompanionConnection xpcInterfaceViewController:crownData:]_block_invoke + 79
11 SockPuppetGizmo 0x2c55c9e8 __62-[SPCompanionConnection performOnSendQueue:syncIfUnsuspended:]_block_invoke.565 + 485
12 WatchKit 0x2b5c4c6a spUtils_dispatchAsyncToMainThread + 19
13 SockPuppetGizmo 0x2c55c334 -[SPCompanionConnection performOnSendQueue:syncIfUnsuspended:] + 1127
14 SockPuppetGizmo 0x2c55ccb2 -[SPCompanionConnection xpcInterfaceViewController:crownData:] + 133
15 SockPuppetGizmo 0x2c54f342 -[SPApplicationDelegate xpcInterfaceViewController:crownData:] + 109
16 SockPuppetGizmo 0x2c5992c6 -[SPInterfaceViewController forwardCrownDataToVCDelegate:] + 65
17 SockPuppetGizmo 0x2c539a7c -[SPCrownSequencer crownInputSequencerIdleDidChange:] + 77
18 PepperUICore 0x259c860e -[PUICCrownInputSequencer _notifyObserversOfIdleChange] + 59
19 PepperUICore 0x259c7d76 -[PUICCrownInputSequencer _displayLinkFired:] + 373
20 QuartzCore 0x1ed7730c CA::Display::DisplayLink::dispatch_items+ 49932 (unsigned long long, unsigned long long, unsigned long long) + 675
21 IOMobileFramebuffer 0x1e479116 IOMobileFramebufferVsyncNotifyFunc + 79
22 IOKit 0x1c0ac47e IODispatchCalloutFromCFMessage + 229
23 CoreFoundation 0x1bdf9c48 __CFMachPortPerform + 143
24 CoreFoundation 0x1be0fb4c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION
+ 35
25 CoreFoundation 0x1be0f31a __CFRunLoopDoSource1 + 357
26 CoreFoundation 0x1be0cfe0 __CFRunLoopRun + 1087
27 CoreFoundation 0x1bd5a96a CFRunLoopRunSpecific + 349
28 GraphicsServices 0x1d91ab92 GSEventRunModal + 89
29 UIKit 0x21fb16da UIApplicationMain + 151
30 libxpc.dylib 0x1bb8bd78 _xpc_objc_main + 581
31 libxpc.dylib 0x1bb8d720 xpc_main + 149
32 Foundation 0x1c817f24 -[NSXPCListener resume] + 175
33 PlugInKit 0x22d27f40 -[PKService run] + 709
34 WatchKit 0x2b5d37b8 main + 157
35 PTMate.Watch.WatchOSExtension 0x0174f598 xamarin_main + 22934936 (monotouch-main.m:479)
36 PTMate.Watch.WatchOSExtension 0x0017e096 xamarin_watchextension_main + 57494 (main.m:63)
37 libdyld.dylib 0x1b93eb8e 0x1b93b000 + 15246

The code behind is very simple and straightforward:

    public override void Awake(NSObject context)
    {
        base.Awake(context);

        ...

        // hook the Digital Crown delegate
        CrownSequencer.Delegate = this;
    }

    public override async void WillActivate()
    {
        ...

        CrownSequencer.Focus();
    }

    [Export("crownDidRotate:rotationalDelta:")]
    public void CrownDidRotate(WKCrownSequencer crownSequencer, double rotationalDelta)
    {
        ...
    }

Any idea why this happens?

Thank you in advance!

Tagged:

Posts

Sign In or Register to comment.