Подтвердить что ты не робот

Осложнение замораживает Apple Watch при настройке

Я пытаюсь создать сложность для watchOS2. Я создал новую цель для моего приложения iOS - с взглядами и осложнениями Я хочу иметь только одно модульное большое осложнение.

Когда я запускаю попытку установить сложность Watch freezes (как на симуляторе, так и на реальном Watch)

Вот мой код осложнения:

-(void)getCurrentTimelineEntryForComplication:(CLKComplication *)complication withHandler:(void (^)(CLKComplicationTimelineEntry * _Nullable))handler {

if (complication.family == CLKComplicationFamilyModularLarge) {

    CLKComplicationTemplateModularLargeColumns *template = [[CLKComplicationTemplateModularLargeColumns alloc] init];
    NSString *title = NSLocalizedString(@"TODAYINTAKE", nil);
    template.row1Column1TextProvider = [CLKSimpleTextProvider textProviderWithText:title];
    template.row2Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"kcal"];
    template.row3Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"ml"];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([self isDateToday:[defaults objectForKey:@"dateSaved"]]) {
        template.row2Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"%@",[defaults objectForKey:@"energy"]];
        template.row3Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"%@", [defaults objectForKey:@"water"]];
    } else {
        template.row2Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"0"];
        template.row3Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"0"];
    }
    template.row2ImageProvider = [CLKImageProvider imageProviderWithOnePieceImage:[UIImage imageNamed:@"energy64"]];
    template.row3ImageProvider = [CLKImageProvider imageProviderWithOnePieceImage:[UIImage imageNamed:@"water64"]];
    template.row1ImageProvider = [CLKImageProvider imageProviderWithOnePieceImage:[UIImage imageNamed:@"64"]];
    template.row1Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@" "];
    CLKComplicationTimelineEntry *entry = [CLKComplicationTimelineEntry entryWithDate:[NSDate new] complicationTemplate:template];

    handler(entry);
} else handler(nil);   
}

-(void)getPlaceholderTemplateForComplication:(CLKComplication *)complication withHandler:(void (^)(CLKComplicationTemplate * _Nullable))handler {
if (complication.family == CLKComplicationFamilyModularLarge) {


    CLKComplicationTemplateModularLargeTable *template = [[CLKComplicationTemplateModularLargeTable alloc] init];
    NSString *title = NSLocalizedString(@"TODAYINTAKE", nil);
    template.headerTextProvider = [CLKSimpleTextProvider textProviderWithText:title];
    template.row1Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"kcal"];
    template.row2Column2TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"ml"];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([self isDateToday:[defaults objectForKey:@"dateSaved"]]) {
        template.row1Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"%@",[defaults objectForKey:@"energy"]];
        template.row2Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"%@", [defaults objectForKey:@"water"]];
    } else {
        template.row1Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"0"];
        template.row2Column1TextProvider = [CLKSimpleTextProvider textProviderWithFormat:@"0"];
    }

handler(template);
} else handler(nil);

}

Я прохожу CLKComplicationTimeTravelDirectionNone в качестве поддерживаемых направлений движения времени

Я беспомощен, так как я не вижу никакой ошибки в консоли, а симулятор или устройство просто зависает.

Из отчета о карусельной катастрофе я смог прочитать эту информацию:

*** Завершение приложения из-за неотображенного исключения "NSInternalInconsistencyException", причина: "Требуется приложение. bundleID: ql.ManaEU.watchkitapp appToReplace: proxy: ql.ManaEU.watchkitapp < (null) Не найдено в базе данных > ' завершение с неперехваченным исключением типа NSException abort() CoreSimulator 191.4 - Прибор: Apple Watch - 42mm - Runtime: watchOS 2.0 (13S343) - Тип устройства: Apple Watch - 42mm

4b9b3361

Ответ 1

FYI, я смог настроить часовое лицо, используя предоставленный вами код расширения. Там нет проблем.

Если вы заметили идентификатор пакета в ошибке журнала сбоя, система сообщит о проблеме с приложением watchkit (которое содержит расширение watchkit).

Завершение приложения из-за неотображенного исключения "NSInternalInconsistencyException", причина: "Требуется приложение. bundleID: ql.ManaEU.watchkitapp...

Вам нужно будет отследить, что случилось с пакетом watchkit. Первым местом для начала будет целевой журнал создания приложений для Xcode. Если там нет ошибок или предупреждений, проверьте журналы консоли iPhone и Apple Watch.

Если это не указывает на проблему, проверьте Info.plist, чтобы убедиться, что эти значения действительны и имеются необходимые ключи. Также проверьте настройки сборки целевого приложения для приложения watchkit.

Вы должны иметь возможность использовать Редактор версий для сравнения проекта Xcode с его первоначальной фиксацией, чтобы убедиться, что что-то было случайно изменено или удалено.

Ответ 2

Вы предоставляете шаблон заполнителя CLKComplicationTemplateModularLargeTable для текущей записи временной шкалы CLKComplicationTemplateModularLargeColumns. Шаблон заполнителя осложнений должен соответствовать текущей записи временной шкалы.