Отладка на реальных Apple Watch

Я обновил свое приложение для Apple Watch, но мне следовало слишком сильно его взвесить, и теперь оно определенно медленное. Я не могу понять причины этого замедления, поэтому я хотел бы отладить приложение, но я не знаю, как это сделать, потому что в симуляторе приложение работает нормально, замедления проявляются только на устройстве.

Я попытался запустить приложение напрямую из xCode на Watch, но как только xCode запустил установку приложения на Watch, он останавливает запуск, поэтому я не вижу, что происходит во время работы (например, когда запускается определенная точка останова или иным образом выполняется отладка).

Кто-нибудь имеет представление о том, как правильно отлаживать на физических Apple Watch?

PS: например, этот код:

func clearScreen() {
    firstPicker.setSelectedItemIndex(0)
    secondPicker.setSelectedItemIndex(0)

    defaultLabels()
}

func defaultLabels() {
    feesLabel.setText(NSLocalizedString ("FEES", comment: "Commissioni"))

    clearAllMenuItems()
    addMenuItemWithItemIcon(.Decline, title: NSLocalizedString("CAN_CEL", comment: ""), action: "clearScreen")
    if DefaultParameter.sharedInstance.wishMode == true {
        addMenuItemWithImage(UIImage(named: "will")! , title: NSLocalizedString("WILL_RECEIVE", comment: ""), action: "willWishButtonPressed")
        receivedLabel.setText(NSLocalizedString ("DESIRED_AMOUNT", comment: ""))
    } else {
        addMenuItemWithImage(UIImage(named: "wish")! , title: NSLocalizedString("WISH_RECEIVE", comment: ""), action: "willWishButtonPressed")
        receivedLabel.setText(NSLocalizedString ("RECEIVED_AMOUNT", comment: ""))
    }
}

для запуска требуется около 7 секунд...

2 ответа

Я не рекомендую пытаться отлаживать приложение Apple Watch, нажав кнопку "Выполнить" в XCode. Это очень непредсказуемо относительно того, будет ли это работать. Вот как я отлаживаю на Apple Watch, и он работает для меня каждый раз:

  1. Подключите свой iPhone к компьютеру под управлением Xcode
  2. Запустите приложение на своем iPhone из Xcode
  3. Нажмите кнопку остановки в Xcode
  4. На Apple Watch убедитесь, что новое обновление приложения перенесено (обратите внимание, что если вы не внесли никаких изменений в приложение для часов, новое, похоже, не копируется в данный момент).
  5. Запустите приложение для часов из ваших часов (пока нет Xcode!)
  6. В Xcode выберите Watch Extension из схем, убедитесь, что ваше устройство выбрано из списка устройств, должен отображаться ваш телефон + ваш Apple Watch.
  7. В Xcode, нажмите "Отладка -> Присоединить к процессу" и выберите процесс расширения вашего часового механизма. Обратите внимание, что вы увидите процесс как для вашего часового приложения, так и для расширения часов. Убедитесь, что выбрали расширение для часов
  8. На ваших часах нажмите на некоторый элемент пользовательского интерфейса, например кнопку.
  9. Ваше приложение для часов будет иметь загрузочный счетчик в центре экрана. Этот счетчик продолжается до тех пор, пока часы не смогут подключиться к Xcode. Иногда это занимает несколько минут (около 3 для меня!). Когда спиннер останавливается, вы сможете нормально отлаживать в Xcode.

Единственная хитрость - это терпение при ожидании подключения Xcode на шаге 8. Это определенно медленно, но дает вам гораздо больше информации о производительности, чем на симуляторе.

Для меня это похоже на знакомую ошибку watchOS, поэтому я полагаю, что вы не сделали ничего плохого.

Вы должны попытаться удалить приложение Watch из ваших часов, используя приложение Watch на вашем телефоне, а затем запустить его снова.

Вам определенно понадобится немного терпения, поэтому попробуйте несколько раз, если это не сработает. У меня был опыт, что это сработало после нескольких попыток.

Другие вопросы по тегам