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.



The complication family is
CLKComplicationFamilyGraphicRectangularfor the above watch face. So use that for updating values and placeholder text