If you are still looking to a solution to this problem - or for anyone else who needs CLKComplications for watchOS 7 and 8 and to also have WidgetKit complications for watchOS9+ in the same app, the key to getting CLKComplications working on a single target watch app is to implement the getComplicationDescriptors(handler:) method in your ComplicationController class. In this method you need to specify the complications your app supports. If you don't do this, the complications won't show up at all, even if you specified supported complication families in the info.plist file. In fact, you need to delete the CLKComplicationSupportedFamilies key from the info.plist once you implement the new method in the ComplicationController class.
Note that if you are adding WidgetKit support for complications into an older app, you will want to migrate your two-part app into a single target, which means that a minimum target will be watchOS 7 (which will bring with it this CLKComplications problem). If you don't migrate to a single target app, the WidgetKit complications will not update reliably at all.
Topic:
App & System Services
SubTopic:
General
Tags: