watchOS 9: ClockKit-based complications occasionally failed to display

Hello!

Two of my watch apps (HiCoffee and HiWater) occasionally have issues with complications not displaying properly on watchOS 9. I did NOT use the new WidgetKit to implement the complications, all the related code still uses the same previous ClockKit + SwiftUI.

I have observed several different types of wrong behaviors.

  1. One specific complication cannot be displayed (rendered?), while others do work (from the same app). This indicates that my watch app is working properly.

  2. All complications on the face cannot be displayed. But the app logs indicates it's running properly. In addition, when you long press the face to edit complications, yet it can be displayed normally.

  3. Log shows CLKComplicationServer.sharedInstance().activeComplications always returns 0 no matter how many complications are added to the face. Also, the ComplicationController is NOT called by system. I'm not using WatchKit.

This part of the code in my app has been working properly for a long time and has not been changed. But after the release of watchOS 9, I received a lot of feedback from users with this problem. So I think the problem is in watchOS 9.

I haven't found a way to reproduce the problem yet. Any suggestions please?

Post not yet marked as solved Up vote post of Gong Down vote post of Gong
2.2k views
  • Facing same issue. Are there any solution to fix the issue?

  • @mehulFunnmedia I have not found a reliable solution for now. The problem is too difficult to reproduce. 😫

Add a Comment

Replies

I saw you filed Feeback about this—thank you! There might be a timing issue going on, but to know for sure we'd need a sysdiagnose. Can you please follow the instructions here to install the logging profile, reproduce the issue, and grab a sysdiagnose? https://download.developer.apple.com/iOS/watchOS_Logs/sysdiagnose_Logging_Instructions.pdf You can attach it to your existing Feedback. Thanks so much!

  • Thanks for following up! It seems that this problem only appears after the app update. I'm trying to reproduce it. I will attach to the FB if there is any valuable information.

  • Unfortunately, I was unable to reproduce this issue in a development environment. However, I continue to receive feedback and screenshots from a few users. The logs collected from my app confirm that WKExtension is running correctly, but the ComplicationController methods does not seem to be called by the system, even though the user has added this app's complication.

  • These users have been unable to solve the problem by re-adding complications, or even reinstalling the watch app.

Add a Comment

Maybe it's a different issue but form me migration of ClockKit complications to WidgetKit ones doesn't work. I can see that when I install new version of the app with WidgetKit complications none of the methods from ComplicationController are called, including

func getWidgetConfiguration(from complicationDescriptor: CLKComplicationDescriptor,
               completionHandler: @escaping (CLKComplicationWidgetMigrationConfiguration?) -> Void)

which is necessary for migration.

Any progress on resolve for the reported issue?

  • Hello! I haven't made any substantial fixes. However, I haven't received any similar issue feedback in the past few months. It looks like this issue may have been fixed in a certain watchOS version, or the issue only occurred during the upgrade process from watchOS 8 to watchOS 9.

Add a Comment

I believe this is the same issue as detailed here: https://developer.apple.com/forums/thread/729599?answerId=753211022#753211022

I've given an answer to me best knowledge there. Hope it helps.

@simonfromhelix Thank you very much! I did indeed migrate to a Single Target Watch App in the update to watchOS 9 last year. The changes to the bundle Identifier and the issue with system caches seem to explain this issue well.

Thanks again for providing this helpful information. This community is really great!

Post not yet marked as solved Up vote reply of Gong Down vote reply of Gong