I've created a WatchKit app for my iPhone app. I'm using Xcode 12.1 and have followed the templates for creating the WatchKit app. When I run it in the simulator by directly installing it to the watch simulator, it runs. When I install it on my Series 4 watch running watchOS 6.2 from the iPhone running iOS 13.7, the Watch app crashes after installing it, and crashes immediately thereafter until I delete the app from the watch.
The WatchKit app still runs, BTW. It's the Watch.app on the iPhone that is crashing.
Being on the iPhone, I got no crash report so I recreated this exact configuration in the simulator. Set up the iPhone 8, paired it with the watch, started both, installed my app on the iPhone, and told the Watch app to install my WatchKit app.
It crashed.
But this time I got a crash report! I'll skip most of it, but here's the good part:
Crashed Thread: 13 Dispatch queue: com.apple.ntk.companionremotecomplicationmanager.updates
Exception Type: EXC CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC CORPSE NOTIFY
Application Specific Information:
abort() called
CoreSimulator 732.18 - Device: iPhone 8 Plus 13.7 + W (8414342A-C2FD-4B5E-95AD-BEDB187E121B) - Runtime: iOS 13.7 (17H22) - DeviceType: iPhone 8 Plus
From this I believe there is a URL missing from the WatchKit app bundle that Bridge.app needs to find. Trouble is, there's nothing in the documentation about needing a URL and no place I can find to put one anyway.
Curiously, the crash mentions a thread named remotecomplicationmanager, but I haven't implemented any complications in the watch app yet (it's on the list) so I'm wondering if the problem is that the Bridge.app expects all WatchKit apps to have complications, and doesn't know what to if there aren't any?
I'm also wondering if this might be the cause of some trouble reports about Watch.app crashing on other people's phones, with other WatchKit apps, that I found doing a Google search.
The WatchKit app still runs, BTW. It's the Watch.app on the iPhone that is crashing.
Being on the iPhone, I got no crash report so I recreated this exact configuration in the simulator. Set up the iPhone 8, paired it with the watch, started both, installed my app on the iPhone, and told the Watch app to install my WatchKit app.
It crashed.
But this time I got a crash report! I'll skip most of it, but here's the good part:
Crashed Thread: 13 Dispatch queue: com.apple.ntk.companionremotecomplicationmanager.updates
Exception Type: EXC CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC CORPSE NOTIFY
Application Specific Information:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSBundle initWithURL:]: nil URL argument'
abort() called
CoreSimulator 732.18 - Device: iPhone 8 Plus 13.7 + W (8414342A-C2FD-4B5E-95AD-BEDB187E121B) - Runtime: iOS 13.7 (17H22) - DeviceType: iPhone 8 Plus
From this I believe there is a URL missing from the WatchKit app bundle that Bridge.app needs to find. Trouble is, there's nothing in the documentation about needing a URL and no place I can find to put one anyway.
Curiously, the crash mentions a thread named remotecomplicationmanager, but I haven't implemented any complications in the watch app yet (it's on the list) so I'm wondering if the problem is that the Bridge.app expects all WatchKit apps to have complications, and doesn't know what to if there aren't any?
I'm also wondering if this might be the cause of some trouble reports about Watch.app crashing on other people's phones, with other WatchKit apps, that I found doing a Google search.