Apple Watchkit模拟器问题:SPErrorInvalidBundleNoGizmoBinaryMessage

Wou*_*ter 29 ios xcode6 watchkit

当我打开现有的Watchkit应用程序(Xcode 6.2)时,它会正确编译,启动模拟器(iPhone + Watch),然后是有意义的错误:

启动'xxx Watchkit Extension'SPErrorInValidBundleNoGizmoBinaryMessage时出错

所有模拟器都有这个问题(iPhone 5/5S/6/6 + - 38mm/42mm)

任何想法可以是什么问题?

由于某种原因,应用程序似乎不想在模拟器上运行,即使它曾经使用过.与其他Watchkit示例应用程序一样,同一项目中包含的iPhone应用程序也可以运行.

小智 42

您是否更改了应用的套件ID?如果是这样,您可能需要手动更新WatchKit扩展中的WKAppBundleIdentifier以及WatchKit App中的WKCompanionAppBundleIdentifier.

  • 我最终对以前的包标识符名称进行了全局搜索,并向我显示了问题所在. (2认同)

小智 21

WKAppBundleIdentifier可能需要与WatchKit App的Bundle Identifier相同.

请查看WatchKit Extension的info.plist.NSExtension - NSExtensionAttributes - WKAppBundleIdentifier - xxxxx.watchkitapp

编辑:进一步解释澄清......

在App目标下,转到INFO选项卡并将Bundle Identifier设置为com.myapp

然后在WatchKit Extension目标下,转到INFO选项卡并将Bundle Identifier设置为com.myapp.watchkitextension

然后仍然在WatchKit扩展目标下,仍然在INFO选项卡下,将NSExtension> NSExtensionAttributes> WKAppBundleIdentifier设置为com.myapp.watchkitapp

所以一个以.watchkitextension结尾,另一个以.watchkitapp结尾

  • 我搜索了WKAppBundleIdentifier并立即找到了我的问题.谢谢. (5认同)

Zev*_*sVU 15

检查Info.plist中的"Your App WatchKit Extension"和"Your App WatchKit App".所有标识符的第一部分应该是相同的.

在我的情况下,问题出现在"Your App WatchKit Extension"> NSExtension> NSExtensionAttributes> WKAppBundleIdentifier中.

我的问题在于这个字符串


Mik*_*itt 7

确保您使用的是8.3模拟器.

使用8.2时,我得到了这个消息.尝试了这里列出的所有内容,并在这几个小时内挣扎.切换到8.3解决了它.Ironic,因为你现在必须将部署目标设置为8.2,但是watchkit应用需要8.3才能运行我猜...


Nex*_*xD. 5

我多次检查了所有包标识符,但无法解决问题.也没有清理构建文件夹.

但是,我能够梳理出来关掉游戏中心我WatchKit扩展的能力.

为iOS主机应用程序启用它似乎工作正常,但是当试图在模拟器中运行WatchKit应用程序时,为WatchKit扩展启用它会导致SPErrorInvalidBundleNoGizmoBinaryMessage错误,同时它完成构建而没有任何抱怨.

我正在为Apple Watch开发游戏,并期待着支持Game Center.实际上我的计划是从一开始就与托管的iOS应用程序进行通信,但后来我看到了GameKit扩展本身的功能中列出的Game Center,所以我希望能够在那里处理它.但是,由于它似乎不起作用,我将坚持我原来的计划,通过托管iOS应用程序支持它.

Xcode版本6.2(6C131e)

编辑:与Xcode版本6.3(6D570)相同的问题