从 URL 启动应用程序时,URL 是新启动应用程序还是恢复已处于暂停状态的应用程序是有区别的。
我的问题是,如何从URL 调试“全新启动”的过程?在 Xcode 中点击“运行”会自动打开应用程序。然后,我必须暂停应用程序才能访问 Safari 并访问我的测试站点。但是如果我关闭我暂停的应用程序,Xcode 将不再附加到它并且我无法调试。
从 URL 启动应用程序时,URL 是新启动应用程序还是恢复已处于暂停状态的应用程序是有区别的。
我的问题是,如何从URL 调试“全新启动”的过程?在 Xcode 中点击“运行”会自动打开应用程序。然后,我必须暂停应用程序才能访问 Safari 并访问我的测试站点。但是如果我关闭我暂停的应用程序,Xcode 将不再附加到它并且我无法调试。
可以在设备上执行这些步骤。在此链接成立。
在 Marc-Alexandre Bérubé 建议的模拟器上。
cmd+shift+(hit h twice)
。向上滑动应用程序。xcrun simctl openurl booted http://yourdomain/path
。您需要配置您的 Xcode 应用程序方案以等待手动启动应用程序。这是您的操作方法:http: //blogmobile.itude.com/2013/09/03/how-to-debug-deep-linking-in-ios/。
然后,您需要复制启动 URL 并将其粘贴到 Mobile Safari。这将启动您的应用程序,并使 Xcode 附加到正在运行的应用程序进程。
虽然提到激活“等待可执行文件启动”的答案在理论上是好的,但由于各种原因,这些对我不起作用。在模拟器上,尽管 Xcode 声称它已“附加”,但从未显示任何日志或断点。在设备上,我运行的是 iOS 13,从 Xcode 10 构建,并使用 Xcode 11 加载,所以我没有任何调试符号。这更像是一个个人问题,我怀疑设备调试可能有效。
最适合我的是在我的 Mac 上打开Console.app,并使用OSLog
API 从模拟器中获得稳定的穴居人调试流。
它不漂亮,但它非常可靠。
还值得一提的是,您可以通过 XCUITest 测试冷启动深度链接来保护这个有用的功能。您可以调用app.terminate
您的 XCUITests,然后打开一个深层链接(通常通过您设置的静态网页,我为此使用公共 GitHub wiki)并像平常一样编写测试和断言行为。