为AppleWatch开发:“有时叫我”

懒惰的星期日。 我看着我的AppleWatch时,很好奇,如何使其显示BTC和ETH等加密货币价格。 已经有用于此的应用程序。 但是我想建立自己的。

总而言之,这并不是最好的体验。 XCode对此实在是太过漏洞了!

我的设置是:

  • Macbook Pro 17英寸
  • XCode 10.2(我尝试过9.4的所有版本都超过10.0、10.1到10.02)
  • 装有iOS 12.1的iPhoneX
  • 带有WatchKit OS 5.1的AppleWatch Series 4

为手表构建应用程序非常容易。 但是,当我开始向应用程序添加“复杂功能”时,挑战就开始了。 用自己的“应用程序”填充钟面中的片段,即所谓的“复杂功能”。 而这实际上使事情变得复杂:

有时,这些并发症会在表盘的“配置”中显示应用程序,有时则不会。 我尝试了几次尝试并重复了一些步骤:有时它们起作用了,有时却没有。 有时XCode无法连接到Apple Watch,有时可以。

有时它正在部署其他东西,而不是我的应用程序:

一个接一个地执行10个相等的步骤,最终得到10个不同的结果。

让我们深入探讨:

首次尝试构建App和Complication之后,我可以在真正的Apple Watch上使用Complication。 但是随后发生了奇怪的事情。

在进行了一些次要的代码更改之后,“并发症”在Watch App中不再可用。 因此,我尝试了以下步骤:

  1. 创建具有并发症的新Watchkit-App
  2. 在我的手表上运行此应用
  3. 尝试在模块方案中重用并发症

我已经以这种方式反复创建了多个应用程序。 有了第一个创建的应用程序,一切顺利。 与第二和第三没有。 在所有情况下,除了使用XCode助手创建项目并在AppleWatch上运行应用程序而无需任何自定义代码外,我什么也没有做:每个新创建的App骨架的行为都不同。 有些应用程序出现在Modular-Configurator中,有些则没有。

有时XCode只是显示一条错误消息,称为

“应用安装失败。 无法从设备读取”。

几分钟后,它变为

“应用程序安装失败:操作超时。”

我一直在关闭XCode,重新打开它,关闭我的Mac,重新启动iPhone和AppleWatch。 每当我有另一种经历。

有时XCode认为我的Apple Watch是“无法用于开发的配对设备”。 然后通过USB电缆将iPhone重新连接到本机。 但是它经常安静地发生。

重现步骤:

  1. 使用WatchKit App创建一个新的iOS App

2.确保选择了“ Include Complication”,因为以后添加它确实很复杂。

3.选择“复杂方案”并将其运行到实际设备上。 也可以在Watch-Simulator上启动它,但是根据我的经验,在模拟器上测试Complication并不是很顺利。

4.在iOS +配对的Apple Watch上启动它:

看来,最脆弱的步骤之一是:

“准备安装MyApp”

如果失败,则完全失败。 XCode无法随后将App安装在设备上。 对我来说,它现在持续存在。 在我的手表上多次安装这些应用程序后,它将超时。

该并发症不会像本例中那样出现在Watch-App中,它可以正常使用几个小时,但现在还不能重现:

但是,对于那些能够通过电缆运行的幸运儿来说,真正的乐趣开始了。 可以说,我们要提供SmallModular和LargeModular复杂功能,请将这些行添加到ComplicationController.m中:

https://gist.github.com/itinance/32b5573c04f0ad19861bcd4e21d52ee7

在创建实际显示时可能如下所示:

到目前为止,我还没有找到如何使“复杂”真正可见的方法。 有时他们出现了。 有时不是。 通过XCode重新启动应用程序可以使它们消失而无需更改任何Code。

从头开始重新启动所有内容在一段时间内有所帮助。 或将iPhone重新连接到Mac。 有时确实如此。 有时不是。

最后,我做到了。 但是它总是感觉像是在上个世纪末使用非常脆弱的系统进行操作。 目前,由于上述错误,我无法将最终的App更改部署到设备上。 使用新的XCode AppleWatch-App-Skeleton从头重新启动有时会将其安装到设备上,有时则不会。 在撰写本文时,它是一个根本崩溃的系统。