CLKComplicationTemplates do not have proper availability annotations

Originator:ckrames1234
Number:rdar://28459773 Date Originated:September 13, 2016
Status:Open Resolved:
Product:watchOS SDK Product Version:watchOS SDK 3.1 beta 1
Classification:Serious Bug Reproducible:Always
 
New CLKComplicationTemplate subclasses were introduced in watchOS 3.0 for the new complication types and they do not have proper availability notations.

Normally, when new classes are introduced, they include availability notations specifying which OS versions they are available on. For example, WKInterfaceSKScene was introduced in watchOS 3.0:

WK_AVAILABLE_WATCHOS_ONLY(3.0)
@interface WKInterfaceSKScene : WKInterfaceObject

The CLK_AVAILABLE_WATCHOS macro is included in the ClockKit headers, but it is not used anywhere.

This is causing our app, compiled against watchOS 3.0 and using CLKComplicationTemplateExtraLargeStackImage, to crash. This is because the availability macros implicitly mark classes introduced after the deployment target as weak_import. Because this is not automatically happening we are seeing this error in Apple's crash reporting:

Dyld Message: Symbol not found: _OBJC_CLASS_$_CLKComplicationTemplateExtraLargeStackImage

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!