简体   繁体   中英

Debugging on real Apple Watch

I updated my app for Apple Watch, but I should have weighed it too much and now it's definitely slow. I can't understand the reasons of this slowdown so I would like to debug app but I don't know how to do that because in the simulator app works normally, slowdowns manifest only on the device.

I tried running app directly from xCode on Watch but once xCode launched the installation of the app on the Watch, it stops the run so I can't see what happens while running (for instance when run certain breakpoint or otherwise do us debug).

Does anyone have an idea of what's the right way to debug on a physical Apple Watch?

PS: For instance, this code:

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: ""))
    }
}

takes around 7 seconds to run...

I do not recommend trying to debug your Apple Watch app by pressing the Run button in Xcode. It is very unpredictable as to whether or not it will work. Here is how I debug on the Apple Watch and it works for me every time:

  1. Connect your iPhone to your computer running Xcode
  2. Run your app on your iPhone from Xcode
  3. Click the stop button in Xcode
  4. On your Apple Watch, make sure that the new app update has been transferred over (Note that if you didn't make any changes to the watch app, a new one doesn't seem to get copied over at the moment).
  5. Launch your watch app from your watch (no Xcode yet!)
  6. In Xcode select the Watch Extension from the schemes, make sure your device is selected from device list, should show your phone + your Apple Watch.
  7. In Xcode, click "Debug -> Attach to process" and pick your watch extension's process. Note that you will see a process for both your watch app and the watch extension. Make sure to pick the watch extension
  8. On your watch, tap on some UI element, such as a button.
  9. Your watch app will have a loading spinner appear in the middle of the screen. This spinner continues until the watch can connect to Xcode. Sometimes this take a few minutes (around 3 for me!). When the spinner stops then you should be able to debug in Xcode normally.

The only trick is to be patient when waiting for Xcode to connect in step 8. It is definitely slow to do, but gives you far more performance information that running on the simulator.

Sounds like a familiar watchOS bug for me, so I presume you didn't do anything wrong.

You should try to delete the watch app from your watch using the Watch app on your phone, then run it again.

You will definitely need some patience, so try it multiple times if it doesn't work. I had the experience that it worked after a few attempts.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM