I am testing and able to reproduce this in a very simple app. I am following the WWDC 2015 video: https://developer.apple.com/videos/play/wwdc2015/209/
Another tutorial which uses the same info is: https://www.bignerdranch.com/blog/watchkit-2-complications/
Just like the WWDC video, I want my app to only provide a CLKComplicationTemplateModularLargeStandardBody
complication. So in my extension's target general settings, I have enabled ONLY Modular Large
.
For a simple test, I only added the code for the placeholders:
- (void)getLocalizableSampleTemplateForComplication:(CLKComplication *)complication withHandler:(void(^)(CLKComplicationTemplate * __nullable complicationTemplate))handler {
// This method will be called once per supported complication, and the results will be cached
NSLog(@"getLocalizableSampleTemplateForComplication: %ld",(long)complication.family);
if (complication.family==CLKComplicationFamilyModularLarge) {
CLKComplicationTemplateModularLargeStandardBody *template = [[CLKComplicationTemplateModularLargeStandardBody alloc] init];
template.headerTextProvider=[CLKSimpleTextProvider textProviderWithText:@"Date"];
template.body1TextProvider=[CLKSimpleTextProvider textProviderWithText:@"Class"];
template.body2TextProvider=[CLKSimpleTextProvider textProviderWithText:@"Location"];
handler(template);
} else {
handler(nil);
}
}
After this, I deleted and even reseted both the iPhone and Watch simulator. Then ran the app. In the Watch's customize screen for Infograph Modular
watch face, I don't see my app available.
An interesting thing (bug???) I noticed is that if I go to the extension's general settings and enable all the complications, then it shows up.
But I don't want to provide other types of complications. I only want to provide Modular Large for my app. Is this a bug?
Another thing I noticed is that the placeholder shows -------- instead of my provided TextProvider templates. Is this another bug?
I have reset the simulator, deleted my app from watch and iPhone many times to no solution. After resetting, my NSLog
for getLocalizableSampleTemplateForComplication
does print however the complication doesn't appear in the customize screen.
CLKComplicationFamilyModularLarge
you should useCLKComplicationFamilyGraphicRectangular
- Igor P