【问题标题】:How to run a WatchKit App如何运行 WatchKit 应用程序
【发布时间】:2014-11-20 06:58:40
【问题描述】:

我无法从新项目运行 watchkit 应用。如果我运行 Apple 的示例项目,它运行良好。如果我通过为 watchkit 添加一个目标来将 watchkit 添加到我现有的项目中。然后运行它,即使在我的故事板中,我有一个设置为具有蓝色背景的主界面控制器,但随着时间的推移出现黑屏。这行代码被调用。

- (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 应用程序)无法在模拟器上运行。

这基本上是我看到的。

【问题讨论】:

  • 你需要提供更多的上下文。
  • 为了在现有项目中包含 watchkit,我为 watchkit 添加了一个目标。代码运行但模拟器没有反映我的故事板中的内容。我想知道这是一个测试版问题还是我搞砸了。想不到还有更多。如果代码确实运行,我的故事板中的控制器应该会显示出来。
  • 您是否正在使用 OS X 10.10.2?
  • 这是很久以前的事了,所以我想我使用的是优胜美地的第一个版本。我开始了一个新项目,从那以后就没有遇到过这个问题。

标签: objective-c watchkit


【解决方案1】:

运行时,是否将方案更改为 WatchKit App 目标? 还是您只是像往常一样构建和运行 iOS 应用程序? 现在你不能同时运行 iOS app target 和 Watch App target。

您必须按此处所示切换方案/目标,然后选择相同的模拟器并显示您已经完成的手表 UI,(在模拟器中 ->“硬件”选项卡 -> 外部显示器 -> Apple Watch) :

您还必须添加/编辑方案才能查看情节提要的概览或通知部分。 有关详细信息,请参阅示例 Lister 项目中的“Readme”文件。

【讨论】:

  • 你能发布一个你提到的示例项目的链接吗?
  • @GoodSp33d - 这是来自 WatchKit 网站的链接:developer.apple.com/watchkit - 向下滚动到“WatchKit 资源”(右下角)并查找名为“Lister”的项目。您可以将其下载为带有自述文件和快速入门指南的 zip 文件,该指南解释了一些问题,例如如何使用共享组来存储数据、设置部署目标等。
【解决方案2】:

我遇到了类似的问题。您可以尝试以下几件事(为我解决了)

  • 确保您的应用、watchkitapp 和 watchkitextension 具有相同的捆绑包 ID,例如com.company.app 用于应用程序,com.company.app.watchapp 用于 watchkit 应用程序。我有几个具有不同捆绑 ID 的构建配置,因此 xcode 在创建监视目标期间采用了错误的配置。如果应用程序和扩展程序不同,您会收到编译器错误,但 watchapp 捆绑包 ID 不会产生错误。
  • 第一次运行应用程序,在外部设备菜单中打开手表之前会命中所有断点和日志,但打开手表模拟器后将什么也看不到。
  • 有几次应用程序在启动时卡住了我 - 在调试导航器中,状态为“等待附加”。之后每次都必须重置模拟器。

希望对你有帮助。

【讨论】:

    【解决方案3】:

    这可能不是你的问题,但这是我的问题。

    如果您在手表应用程序中包含表格,则需要实现 InterfaceController 中的方法才能显示任何内容。你不能只放一个表格,然后在第一行放一个标签,然后让它显示出来(就像你使用静态 UITableViewController 一样)。

    按照本指南添加表格:https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/Tables.html#//apple_ref/doc/uid/TP40014969-CH14-SW1

    【讨论】:

      【解决方案4】:

      哦,伙计。这个真的把我难住了。我正在研究 Beta 1 中的一些东西,并且有一个表格行,它是 WKInterfaceController 的子类。在 Beta 5 中,我看到的只是相同的空白表视图和调用时

      [self.interfaceTable rowControllerAtIndex:x]
      

      它返回零。

      解决方案:将我的行切换为 NSObject 的子类,效果很好!

      【讨论】:

        【解决方案5】:

        只需将方案更改为 AppName WatchKit App 并构建。

        【讨论】:

          【解决方案6】:
          1. 通过转到产品 -> 方案 -> 更改方案(选择 watchkit 应用目标方案)。
          2. 然后,转到产品 -> 方案 -> 编辑方案并选择运行
          3. 将可执行文件更改为 watchkit 应用程序
          4. 构建并运行代码。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-13
            • 1970-01-01
            • 2015-09-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多