Как запустить приложение WatchKit

Я не могу запустить приложение watchkit из нового проекта. Если я запускаю образец проекта Apple, он работает нормально. Если я добавлю watchkit в свой существующий проект, добавив цель для watchkit. Затем запустите его, я получаю черный экран со временем, хотя в моей раскадровке у меня есть контроллер интерфейса, который установлен на main, который имеет синий фон. Эта строка кода вызывается.

- (void)willActivate {
    // This method is called when watch view controller is about to be visible to user
            [self.listTable setNumberOfRows:5 withRowType:@"List"];
    NSLog(@"%@ will activate", self);
}

мое основное приложение (приложение для iPhone) для iPhone не запускается на симуляторе.

это в основном что я вижу.

Apple Watch Simulator black screen with time label in upper right corner

6 ответов


когда вы запускаете, вы изменили схему на цель приложения WatchKit? Или вы просто создали и запустили приложение iOS, как обычно? Пока вы не можете одновременно запускать цель приложения iOS и цель приложения Watch.

вы должны переключать схемы / цели, как показано здесь, а затем выбрать тот же симулятор и отобразить пользовательский интерфейс часов, как вы уже сделали, (в симуляторе - > вкладка "оборудование" - > внешний дисплей -> Apple Watch):

XCode screenshot of scheme dropdown

вы также должны добавление / редактирование схем для просмотра частей взгляда или уведомления раскадровки. Дополнительные сведения см. В файле "Readme" в примере проекта Lister.


У меня была аналогичная проблема. Вот несколько вещей, которые вы можете попробовать (решил это для меня)

  • убедитесь, что приложение, watchkitapp и watchkitextension имеют одинаковый идентификатор пакета, например com.компания.приложение для приложения и com.компания.приложение.watchapp для приложения watchkit. У меня есть несколько конфигураций сборки с разными идентификаторами пакетов, поэтому xcode взял неправильный во время создания цели просмотра. Вы получите ошибку компилятора, если приложения и расширения отличаются, но watchapp bundle id не будет создавать ошибка.
  • первый запуск приложения, прежде чем открыть часы в меню внешних устройств поразит все точки останова и журналы, но вы ничего не увидите после открытия watch simulator.
  • пару раз приложение застряло на запуске для меня - в навигаторе отладки состояние "ожидало присоединения". после этого пришлось каждый раз перезагружать симулятор.

надеюсь, что это помогает.


Это может и не твоя проблема, но моя.

Если вы включаете таблицу в приложение watch, вам нужно реализовать методы в InterfaceController, чтобы что-либо появилось. Вы не можете просто поместить таблицу, а затем поместить метку в первую строку, а затем показать ее (например, со статическим UITableViewController).

следуйте этому руководству для добавления таблиц: https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/Tables.html#//apple_ref/doc/uid/TP40014969-CH14-SW1


просто измените схему на appname WatchKit App и создайте.


  1. измените схему, перейдя в product - > scheme - > (выберите целевую схему приложения watchkit).
  2. затем перейдите в product - > scheme - > Edit Scheme и выберите Run
  3. изменить исполняемый файл на watchkit App
  4. создайте и запустите код.