Tag: 日志

React Native —使用iOS版Safari的快速`console.log / warn / error`

有很多方法可以调试React Native,例如: 面子书 反应堆 React Native调试器 我只想分享我通常使用的一种方法,即使用Safari的 Web Inspector 。 并且不需要远程调试JS。 如何使用它: 对于真实设备:在设置 > Safari > 高级中启用Web Inspector 在macOS中打开Safari ,转到菜单:“ 开发” >“ YOUR_PHONE /模拟器” >“ JSContext” Web检查器将打开并显示您的代码中console.log/warn/error所说的内容 这种方式的缺点和优点: 缺点:非常易于使用,而且超级快。 优点:只能查看console.log / warn / error 谢谢您的阅读!!!

Swift控制台记录器

最后结果 : 几天前,我正在使用此记录器。 希望与您分享,因为最终结果非常简洁。 因此,首先您需要的是您的应用可能需要的日志类型。 在我的示例中,我几乎涵盖了我所知道的所有日志类型,尽管我很确定您只需要其中一半。 这是一个枚举,因此只需删除不需要的案例(或更改符号)。 它是这样的: 如果我们想获取文件名,函数名和行号,则必须在调用函数之前使用Swift的宏(#file,#function,#line),然后将其作为函数的参数发送。 从函数主体中调用这些宏将打印Logger 的文件,函数和行。 我们可以使用的一个小技巧是使用默认值声明参数。 这将获取调用者的值,我们将获得想要获得的结果。 这是Logger类: 这是如何使用它: Logger.log(.e,“ JSON解析失败”)Logger.log(.w,“我们没有烤面包粉!!”) 希望你喜欢。 🎵“快乐快乐,快乐快乐”🎵

如何调试iOS Notification Service Extension

在移动部门中,我们正在更新通知,并且当我们想在收到推送通知时在扩展中调试代码时发现了一些问题。 首先,我将解释两种典型的解决方法: 一方面,您必须更改目标以运行扩展: 运行后,您必须从“选择要运行的应用程序”窗口中选择您的应用程序。 之后,将启动该应用程序,并且在收到推送通知时,断点将起作用。 另一方面,您可以使用Xcode的Debug(调试)> Attach to Process(附加到进程)> By Process Identifier(PID)或Name…(名称…)菜单:您可以提供进程的名称,Xcode将等待它启动以附加并启动调试会话。 另外,我将解释另一种方法,当收到推送通知并且您的应用终止时,知道您的扩展中发生了什么,我将谈论日志。 日志 在编程时,我们可以轻松地从Xcode调试控制台读取日志,因为调试器仅显示当前的应用程序日志,而没有其他内容。 日志很容易阅读。 但是在我们的情况下,如果断点有问题,我们将遇到来自Xcode调试的日志相同的问题(不会打印日志),因此我们将在设备控制台中进行编写。 但是现在,您可能会担心,因为设备控制台中每秒有很多OS日志输出😖。 没问题,因为使用os.log 框架,我们将在控制台filter中过滤日志。 易于使用。 首先,您必须在扩展中导入框架。 导入os.log 然后,我们只需要使用不同的参数调用os_log ()函数即可。 看起来像这样: os_log(“%{public} @”,日志:OSLog(子系统:bundleIdentifier,类别:“ myExtension”),类型:OSLogType.debug,“推送收到!”) 但是……每个参数是什么? 让我们来看看💡: 第一个参数是每个消息的访问级别。 如果未提供,则将其视为私人。 如果为私有,则在应用程序未附加Xcode Debugger的情况下,不会打印该值。 第二个参数是参数列表,可用于过滤设备控制台中的消息。 第三个参数指示日志消息的不同类型(调试,信息,错误等)。 默认情况下,控制台隐藏调试日志消息,因此,如果需要,您需要在控制台>操作菜单中启用它们。 最后一个参数是您要打印的任何参数。 如果尝试该示例,则尽管应用程序处于后台或已终止,但在收到推送通知时,我们仍会在设备控制台中看到此消息。 最后,我们可以看到,当收到推送通知时,我们有不同的方式来查看扩展中的情况。 鉴于这三个选项,您选择了最适合您的一个😃