终止并重新在Xcode中打开应用程序后如何调试?

时间:2018-12-26 10:15:23

标签: ios xcode logging swift4.2

通常我会在不终止的情况下使用print()方法进行调试,该方法会在Xcode日志上显示出来。但是,当应用程序终止然后重新打开时,我有一些条件需要在AppDelegate的didFinishLaunchingWithOptions方法中进行测试。 “重新打开”是指单击模拟器/ iphone上的应用程序,而不是再次从Xcode运行它。可悲的是,终止后没有显示打印日志。还有其他方法可以做到吗?谢谢!

4 个答案:

答案 0 :(得分:2)

单击Xco​​de左上角“应用程序名称”附近的选项。

点击编辑方案->选中等待可执行文件启动选项,然后像往常一样运行。快乐编码:)。

答案 1 :(得分:1)

  • 选中“等待启动可执行文件”,如@ vishnu_146所述。
  • CMD + R运行应用程序(首次启动)
  • 按两次主屏幕并杀死该应用
  • CMD + R 再次运行该应用程序(我测试无需构建即可运行该应用程序。)
  • 应用程序以先前状态打开。可以达到断点,但无法打印日志。原因:NSLog not working when "wait for executable to be launched" is set

答案 2 :(得分:0)

Swift 4.2 中,

var paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
let fileName = "\(Date()).log"
let logFilePath = (documentsDirectory as NSString).appendingPathComponent(fileName)
freopen(logFilePath.cString(using: String.Encoding.ascii)!, "a+", stderr)
  

只需在应用程序委托文件的application:didFinishLaunchingWithOptions方法中添加此代码块,它将在iPhone上的应用程序文档目录中创建一个日志文件,该日志文件记录所有控制台日志事件。您需要从iTunes导入此文件以查看所有控制台事件。

     

注意:在.plist文件中,请确保存在应用程序支持iTunes file sharing并将其设置为YES,以便您可以通过iTunes进行访问。

     

要获取日志文件:在设备连接后启动iTunes   选择应用程序-选择您的应用程序-在Augmentnt Document中,您将获得   文件。然后可以将其保存到磁盘上

答案 3 :(得分:0)

您可以尝试通过“ NSLog”打印日志。在Xcode上,转到“设备和模拟器”,然后选择您的设备。所有NSLogs都将在底部可见。