WatchKit 应用程序不会 运行 在模拟器上

WatchKit app wont run on simulator

error: WatchKit Extension doesn't contain any WatchKit apps. Verify that the value of WKWatchKitApp in your WatchKit App's Info.plist is set to YES.

我一直收到这个错误,不知道为什么在搜索了所有其他问题后,花了很长时间才弄明白。

解决方案非常简单。前一段时间我删除了一些文件并将它们重新添加到扩展中,但它们并没有被添加回编译源。

将扩展的 .m 文件添加回其编译源,错误消失了。

非常具有误导性的错误信息。

这解决了我的问题:

  • 转到 WatchKit 扩展 |构建阶段 |复制捆绑资源
  • 点击 +
  • 搜索产品文件夹并选择 WatchKit App.app

之后清理并重建

我遇到了同样的问题。

我的问题是,通过重命名目标,我最终得到了主应用程序和 Watchkit 应用程序的相同产品名称,导致在构建时覆盖了它们自己

所以每次我清理构建时,在第一次安装时它实际上工作正常,但在第二次安装时我总是遇到这个错误。

当我意识到这个问题时,我还发现重命名 WatchKit 应用程序的产品名称并没有解决问题,因为 XCode 并没有真正更新对 WatchKit 扩展目标的所有引用,也许会有稍后对此进行修复。 (目前我正在使用 XCode 6.3.1)

将主应用程序的产品名称重命名为其他名称,无论如何都解决了问题。

之后清理并重建,再也没有出现过该问题。

我必须更改扩展程序和 watch 应用程序的编译器,可能是因为我将 Watchkit 应用程序添加到旧项目。

转到扩展程序的构建设置 "Compiler for C/C++/Objective-C" 并观看应用程序,并确保它是 "Default Compiler"。

我最近遇到了这个错误,在花了很多时间试图摆脱它之后,我似乎终于成功了。 在此处阅读解决方案: https://blogofpuneet.wordpress.com/

经过数周又数周的调查,我终于找到了问题所在。

IphoneApp的产品名称与Watch App的产品名称相同

一旦我更改了 WatchApp 的产品名称,它就起作用了。

  1. 去你的目标。 Select 手表应用目标
  2. 转到构建设置。搜索产品名称
  3. 将您的产品名称编辑为不同于 App Target!
  4. 清理并构建。应该管用。谢谢

我更改了自动生成的 Bundle ID,然后遇到了同样的错误。

我发现 WatchKit Extension plist 中的值需要更新。对此 "WKAppBundleIdentifier" 进行全局搜索,然后使其与您的 WatchKit 应用程序的 bundle id 相匹配。这为我修复了错误。

我能够通过从主应用程序的 "General Settings".

中的 "Embedded Binaries" 中删除扩展的二进制文件来修复此错误

我认为自从我创建 watch-target 以来,它仍然存在于 Watch OS 1.

我发现在扩展源中它指向 WatchKitApp 的 Debug-iphoneos 位置所以读取它解决了问题