从URL启动应用程序时,URL是重新启动应用程序还是恢复处于已暂停状态的应用程序之间存在区别。
我的问题是,如何从URL调试“新启动”过程?在Xcode中点击“运行”会自动打开应用程序。然后,我必须暂停该应用程序才能访问Safari并访问我的测试站点。但是,如果我关闭已暂停的应用程序,则Xcode将不再附加到该应用程序,并且将无法调试。
Answers:
这些步骤可以在设备上执行。创建于此链接。
在模拟器上,由Marc-AlexandreBérubé建议。
cmd+shift+(hit h twice)
。向上滑动应用程序。xcrun simctl openurl booted http://yourdomain/path
。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)并编写测试和断言行为。
xcrun simctl openurl booted http://yourdomain/path
以使用所需的URL启动应用程序。