在真正的Apple Watch上进行调试

Mat*_*Car 9 debugging xcode ios apple-watch watchkit

我为Apple Watch更新了我的应用程序,但我应该对它进行过多权衡,现在它肯定很慢.我无法理解这种减速的原因,所以我想调试应用程序,但我不知道该怎么做,因为在模拟器应用程序正常工作,减速只在设备上显示.

我尝试直接从Watch上的xCode运行应用程序但是一旦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: ""))
    }
}
Run Code Online (Sandbox Code Playgroud)

运行大约需要7秒钟...

leh*_*058 9

我不建议您通过按Xcode中的"运行"按钮来尝试调试Apple Watch应用程序.关于它是否有效是非常不可预测的.以下是我在Apple Watch上的调试方式,每次都适用于我:

  1. 将iPhone连接到运行Xcode的计算机
  2. 从Xcode在iPhone上运行您的应用程序
  3. 单击Xco​​de中的停止按钮
  4. 在Apple Watch上,确保已转移新的应用更新(请注意,如果您未对手表应用程序进行任何更改,则此新应用程序似乎不会被复制).
  5. 从您的手表启动您的手表应用程序(还没有Xcode!)
  6. 在Xcode中,从方案中选择Watch Extension,确保从设备列表中选择您的设备,应显示您的手机+ Apple Watch.
  7. 在Xcode中,单击"调试 - >附加到进程"并选择手表扩展的进程.请注意,您会看到手表应用和手表扩展程序的流程.确保选择手表扩展程序
  8. 在手表上,点击一些UI元素,例如按钮.
  9. 您的手表应用程序将在屏幕中间显示加载微调器.这个微调器一直持续到手表可以连接到Xcode.有时这需要几分钟(对我来说大约3分钟).当微调器停止时,你应该能够正常调试Xcode.

唯一的诀窍是在第8步等待Xcode连接时要耐心等待.这样做肯定很慢,但会为您提供在模拟器上运行的更多性能信息.

  • 是的,我一步一步地跟着你的向导,但没有!出现类似"获取进程列表"(我无法准确读取)的内容只是为了闪光而不是所有空白!昨天有一个进程列表,但今天没有!我甚至尝试重新启动xCode,清理项目但没有! (3认同)
  • 在"Debug - > Attach to process"下出现一个空白菜单,我觉得Apple还有很多工作要做...... (2认同)

fre*_*dpi 1

对我来说,这听起来像是一个熟悉的 watchOS 错误,所以我认为你没有做错任何事情。

您应该尝试使用手机上的手表应用程序从手表中删除手表应用程序,然后再次运行。

你肯定需要一些耐心,所以如果不起作用,请多尝试几次。我的经验是,经过几次尝试后,它确实有效。