WatchKit Complication Placeholders seem broken and unreliable

I am trying to add a complication to an existing Watch app, and need to use the ClockKit approach to be compatible with older watchOS versions. I've spent a couple days working on this and have concluded that using placeholder images through an asset catalog is not reliable at all. In fact it seems really broken.

First issue, the documentation here has some inaccuracies relative to observed behavior:

https://developer.apple.com/documentation/clockkit/creating_complications_for_your_watchos_app/adding_placeholders_for_your_complication?language=objc

The documentation says "If you don’t provide any placeholders, the system generates a placeholder based on your app icon." which is not true in practice. If I do not provide placeholder images, the complication only shows "--". Pity, because all my customers really want is a shortcut to launch the app, so having the icon displayed in the complication would be wonderful.

OK, so I'll provide some image placeholders in the Xcode assets. The documentation says "If you don’t provide an image for a particular screen size, watchOS resizes the closest available image in that family." Well that's not true either. I have to supply every size in every family or the complication shows "--" on some devices.

Even that wouldn't be bad if it really worked. But in Xcode 14, the asset format for complication images only has slots for a few device sizes. So even when I fill all the slots, testing on some other device sizes results in "--" displayed in the complication because there isn't a direct placeholder graphic match for their screen size.

Finally, different scale options can be set for the assets, and some offer options for "all sizes" or vector graphics. That would be wonderful since theoretically it can scale to any size and look sharp. Well I tried that with SVG files in the sizes requested, and the graphics show up but do not properly scale on the devices. They end up getting cropped, not scaled.

Has anyone gotten this to work properly? It seems totally broken. I can certainly write up code to deliver complication graphics as part of the complication data source, but without reliable static placeholder graphics, that will still leave some undesirable gaps when a user first installs the app. I am really surprised this is so unreliable.

Replies

I couldn't get this to work at all, and gave up. Raise a feedback report with Apple and hope they fix it.

(I spent months trying to get complications to work properly. They just don't.)

I've had issues too. Mostly with migrating my app from the app / extension to a single combined targets. A whole host of issues have occurred since and no real fixes seem to exist other than reinstalling the app. Have submitted feedback, heard nothing. (FB 11989396)