WatchKit应用只能启动iPhone模拟器和WatchKit应用,而不能启动iOS应用程序。

5
我已经配置了WatchKit应用程序在iPhone 6上运行,WatchKit应用程序方案可执行文件指向WatchKit App.app,Watch界面指向Main,但是iOS应用程序没有启动,只有WatchKit应用程序。
当我选择WatchKit应用程序在iPhone 6上运行时,iPhone 6模拟器会启动,我会看到黑屏一秒钟,然后模拟器会返回到iOS级别,但主要应用程序没有启动,只有Apple Watch模拟器上的WatchKit应用程序。我不知道为什么iOS应用程序没有启动?
3个回答

4
为了在运行手表应用程序时调试iOS应用程序,您应该遵循这里所述的步骤。
您还需要了解,iOS应用程序在运行手表应用程序时不必运行。您有几种可能的运行时场景组合……所有这些都必须无缝处理您的iOS应用程序和手表应用程序。
- iOS应用正在运行,但手表应用没有运行。 - 手表应用正在运行,但iOS应用没有运行。 - 两个应用程序都在前台运行。 - 手表应用在前台运行,而iOS应用在后台运行。
我还发布了一些关于从Watch Extension启动父应用程序以及共享数据的附加信息这里
希望这能帮到你。

你让我今天过得很开心! - Ing. Ron
还有没有可能查看iOS应用程序的NSLog语句? - Ing. Ron

3
如果您想要在容器应用中查看NSLogs,可以按照以下步骤操作:
  • 尽早在您的手表应用程序进程中设置断点
  • 运行容器应用
  • 停止容器应用
  • 运行手表应用程序并让其命中断点
  • 使用运行和调试连接的手表应用程序,在模拟器中点击打开容器应用程序
  • 返回XCode,转到“调试”>“附加到进程”>“您的容器应用程序”

现在,您应该连接到两个进程,并可以看到来自两个进程的断点和日志。您可以使用左窗格中的线程导航器切换应用程序(您需要这样做才能重新启动手表应用程序)。

请注意,手表应用程序中的早期断点是可选的,我只是发现它有用,可以确保捕获任何早期断点。


2

目前存在一个bug,尚未修复。要绕过并启动iPhone应用程序,请按照以下步骤操作:

1)停止Xcode中的任何进程。

2)构建并运行iPhone应用程序。

3)一旦启动iPhone应用程序,请停止它。

4)切换到WatchKit方案扩展,并构建并运行它。

5)通过按其图标从iPhone主屏幕打开您的iOS应用程序。


我已经找到了解决方法,但是使用这种解决方法无法为IOS应用程序设置断点。无法与WatchKit应用程序交互进行调试吗? - Ing. Ron
目前还不行,最新版本的发布说明中说这是一个bug。 - BalestraPatrick
设置断点应该没问题。我已经做了很多次了。也许我误解了你的问题?当我在附加调试器后设置断点时,它会正确触发。 - bgilham
除了断点之外,使用NSLog来调试IOS应用程序也非常好。但是正如“noon”所说,目前还无法使用它。 - Ing. Ron
Xcode 6.3解决了这个问题吗?我真的不想因为这个安装Yosemite。 - Pahnev
1
@Pahnev 不,它没有。 - BalestraPatrick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接