将自定义数据包含到 iOS 故障转储中

2024-06-20

你好,堆栈溢出!

有一个简单的问题要问您:当我的应用程序在用户的设备上崩溃时,是否可以将自定义错误数据嵌入到自动生成的 iOS 故障转储中?

例如:我的 SQlite 数据库由于某种原因无法运行(例如,数据库文件已损坏)。我无法从这个错误中恢复,所以我抛出一个异常,并在异常中嵌入详细的 sqlite 错误消息。问题是,应用程序的故障转储不会包含异常消息,因此不容易知道应用程序在什么情况下崩溃。

有谁知道如何将内容放入故障转储报告中?或者您有其他推荐的方式向开发人员报告生产崩溃吗?

Thanks !


不可以,您不能将自己的数据添加到崩溃报告中。由于沙箱的原因,也不可能自动访问 iOS 生成的崩溃报告。

所以我的建议如下:

  1. 要记录您自己的数据,请使用可可伐木工 https://github.com/robbiehanson/CocoaLumberjack。它比 NSLog 或其他日志框架快得多,并且可以选择将消息记录到文件中。现在,当发生异常时,或者任何您想要的时候,将其记录到文件中。但是,如果您的应用程序在您将某些内容添加到日志文件时崩溃,那么它很可能会丢失,因为应用程序在同一时刻崩溃了。

    因此,安全地捕获确切的 SQL 语句是相当不可能的。但是崩溃报告应该为您提供足够的信息来了解正在发生的情况,以及您之前记录的已完成的操作。例如。您可以在执行 SQL 之前记录 SQL 方式中使用的搜索字符串。

    一般来说,尽量不要记录太多。

  2. 为了捕获崩溃报告,您应该选择基于开源框架的解决方案PLC故障报告器 http://code.google.com/p/plcrashreporter/, 哪个行safely http://landonf.bikemonkey.org/code/objc/Reliable_Crash_Reporting.20110912.html捕获崩溃,当您的应用程序已经在应用程序商店中时也是如此!不建议捕获异常,检查本文 http://landonf.bikemonkey.org/code/objc/Reliable_Crash_Reporting.20110912.html看看为什么!

    iTunes Connect 还允许您查看一些崩溃报告,但需要长达 2 周的时间才能看到一些报告,但到目前为止还不是全部。指出由相机+开发者 http://taptaptap.com/blog/cameraplus-2-3-1-available-attack-of-the-crashinator/。所以你最好使用你自己的解决方案。

    PLCrashReporter 将向您发送标准苹果格式的崩溃报告,准备好进行符号化,以便您知道代码中发生崩溃的位置,包括行号。

    基于PLCrashReporter的一些解决方案是:

    • 昆西·基特 http://quincykit.net:开源客户端 + php 服务器,基本的崩溃分组,符号化可以在你的 mac 上自动化(我是这个的开发者)
    • 曲棍球应用程序 http://hockeyapp.net:付费服务,使用 QuincyKit 客户端,高级崩溃分组,符号化完全在服务器上完成(我是这个的开发人员之一)
    • Bugsense http://bugsense.com:免费服务,符号宣布为高级功能
    • AppBlade http://appblade.com:付费服务,符号未知
    • 崩溃解决方案 http://crashlytics.com:内测,功能未知,他们的解决方案似乎是基于PLCrashReporter
  3. 所提出的解决方案要么允许在下次启动时自动发送数据,要么询问用户是否同意发送。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将自定义数据包含到 iOS 故障转储中 的相关文章

  • 如何使用 Swift 关闭打开的文件?

    我正在下载约 1300 张图像 这些是小图像 总大小约为 500KB 但是 下载并将它们放入 userDefault 后 我 收到如下错误 libsystem network dylib nw route get ifindex 套接字 P
  • 核心图:如何隐藏图、轴和标签?

    我有一个图表 其中 Y 轴和 X 轴与主图一起绘制在默认绘图空间上 然后我有单独的辅助绘图空间 每个辅助绘图都有自己的 Y 轴 所有绘图的 X 轴都相同 我正在实现按钮来打开和关闭辅助图 我希望它基本上包括整个绘图空间 绘图 自定义 y 轴
  • iOS:如何使用 CGLayer 支持 Retina 显示屏?

    我正在 CALayer 的委托方法中绘制图表drawLayer inContext 现在我想支持 Retina Display 因为图形在最新设备上看起来很模糊 对于直接在 CALayer 传递的图形上下文上绘制的部分 我可以通过如下设置
  • ViewController.swift(界面)文件的用途是什么 - 在 Counterparts 中

    我刚刚注意到一个名为ViewController swift Interface 当我创建第一个 ViewController 时 Xcode 自动创建了它 Swift 中的类是否具有 需要与 Objective C 中相同的接口 并且由
  • Swift 3:将 UIButton 扩展添加到 ViewController

    我是 iOS Swift 的初学者 尝试创建一个没有 Storyboard 的简单应用程序 我创建了一个UIButton扩展名 我想在我的视图中添加一个简单的按钮 稍后将设置约束 不幸的是 该按钮不可见 如果有人帮助我 我将不胜感激 谢谢你
  • 如何在 UICollectionView PerformBatchUpdates 块中排序移动、插入、删除和更新?

    In my UICollectionView 我使用一个简单的自定义对象数组来生成和显示单元格 有时数据会发生变化 我想一次性为所有变化添加动画效果 我选择通过跟踪第二个数组中的所有更改 比较两个数组并在一个数组内生成一组移动 插入 删除和
  • FileManager 说文件不存在

    我有一个用例需要UIImage保存到文档目录 然后UIImage需要转换为PDF并保存到文档目录 转换为 PDF 的代码 var filePath NSString string self selectedMedia imagePath i
  • object_setClass()而不是分配isa指针的性能

    我注意到在 XCode 4 6 的最新更新中 我收到了关于以下几行的警告JSONKit m 具体来说 设置对象类的行 dictionary gt isa JKDictionaryClass 这些被标记为已弃用 并注明首选方法是使用objec
  • 外围 BLE 设备的唯一标识符

    所以我有外围设备BLE设备 我需要一些标识符以便稍后与另一部 iPhone 共享 我连接的示例iPhone A 为外围设备 iPhone A 将外围设备的标识符保存到数据库中 稍后我可以轻松获取iPhone B 并连接到通过该标识符找到的外
  • 如何在 IIS 中为我​​的网站关闭自定义错误处理?

    您如何查看 web config 文件 我不知道去哪里关闭自定义错误 帮助 我尝试了命令提示符和java脚本 有人可以帮助我吗 请记住 IS 错误和 asp net 错误是两个不同的事情 对于远程请求 默认情况下 IIS 启用了自定义错误
  • 使用 Swift 更改整个应用程序中的 UILabel 文本颜色

    在 Swift 中有什么方法可以在整个应用程序中立即更改 UILabel 的文本颜色属性吗 我尝试过使用外观属性 但这不适用于 UILabel textColor 任何方式或任何同样工作的库 一种方法是使用颜色设置 首先在您的 xcasse
  • 如何在文本末尾添加按钮,如 Facebook 的“继续阅读”?

    当状态帖子太长时 Facebook 应用程序会剪切文本并在末尾添加 继续阅读 它如何知道在哪里剪切文本并添加 继续阅读 不仅仅是向 textView 或标签添加按钮 而是如何剪切字符串 例如 在下图中 我将行数限制为 7 我可以在 text
  • 如果您查看内部,nib 文件到底是什么样子的?

    我刚刚学习 nibs 和 swift 并对某些东西感到好奇 我知道 如果您有一个 main storyboard 文件 则首先加载根视图控制器的笔尖 然后加载该视图控制器下可能分层存在的任何视图 但是 我想知道一些事情 当他们说笔尖已 加载
  • 当 iPhone 设备方向朝上/朝下时,我可以判断它是横向还是纵向吗?

    我得到这个代码 如果设备处于左 右横向或上下颠倒状态 它会旋转并显示另一个视图控制器 但如果它的方向朝上或朝下 那么我如何判断它是横向模式还是纵向模式 因为我只想在它面朝上或朝下以及横向模式下旋转 void viewDidAppear BO
  • 使用捏合手势;如何放大用户手指实际“捏”的位置?

    我已经在我的应用程序中的 UIImageView 上实现了 UIPinchGestureRecognizer 但是无论我在图像的哪个位置捏合 它似乎都会放大到同一个位置 有谁知道我如何让它放大到用户实际 捏 的地方 请参阅下面的代码 视图控
  • 取消交互式 UINavigationController 弹出手势不会调用 UINavigationControllerDelegate 方法

    如果拖动 a 的边缘UIViewController开始交互式流行过渡UINavigationController the UIViewController在电流下方有viewWillAppear 调用 然后是UINavigationCon
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • SDWebImage 显示缓存中图像的占位符

    在 iOS 5 1 项目 iPad 中使用 SDWebImage 3 我们展示相当大的图像 700x500 并且我们有很多图像 1000 我们预取图像并缓存到磁盘 然后允许用户浏览它们 效果很好 除了当您浏览图像时 您总是会看到占位符显示一
  • UINavigationController 在后退按钮单击时向下滚动

    我正在开发一个带有多个导航控制器的 iPhone iPad 应用程序 当我在设备处于横向模式时单击视图的后退按钮时 前一个视图会垂直滚动到屏幕中 而不是像往常一样水平滚动 推送动画始终水平工作 正如它应该的那样 是什么导致了这个奇怪的问题
  • Swift 3 和 Xcode8 - init 的使用不明确

    在我安装 Xcode 8 并将项目转换为 Swift 3 之前 以下行没问题 现在转换后看起来像这样 let valueData Data Data bytes UnsafePointer

随机推荐

  • 如何识别拼写不同的相似单词

    我想从数据库中过滤掉重复的客户名称 一位客户可能有多个同名但拼写差异不大的系统条目 这是一个示例 名为 Brook 的客户可能有 3 个系统条目 有了这个变化 布鲁克 贝尔塔 布鲁克 贝尔塔 比鲁克 贝尔塔 假设我们将此名称放入一个数据库列
  • GET 和 POST 方法有什么区别? [复制]

    这个问题在这里已经有答案了 可能的重复 什么时候用POST 什么时候用GET https stackoverflow com questions 46585 when do you use post and when do you use
  • 读取 BCP 格式文件时发生 I/O 错误

    今天 我创建了一个新的临时表和一个 BCP fmt 文件 我创建了一些测试数据并尝试从命令行运行 BCP 实用程序 我从之前的工作中获得了大约 20 个不同格式的文件和暂存表 这是我第一次遇到此错误 我该如何修复这个错误 请注意 我在下面添
  • 404因为重新启动webpack-dev-server

    当我尝试更改反应组件并保存它以查看热加载器是否更新了我的页面时 我在开发人员工具中得到了这个 GET http localhost 3000 public bundle 76566a1ad7e45b834d4e hot update jso
  • 使用 实现可访问性的更好做法是什么?

    我有一个下载链接 但我找不到任何良好的可访问解决方案来说明如何处理这种情况 我遵循一个共同的经验法则 按钮做事 链接去地方 我的情况是 我有一个触发文档下载的按钮 同一页面 我相信这应该是一个具有按钮角色的锚点 因为它明确不触发重定向或导航
  • 如何将stepfunctionexecutionId解析为SageMaker批量转换作业名称?

    我创建了一个步骤函数 该状态机的定义如下 step function json 在 terraform 中使用 使用本页中的语法 https docs aws amazon com sagemaker latest APIReference
  • 如何通过 BufferedImage 将巨大的图像加载到 Java 中?

    我想将大图像 18000 x 18000 加载到我的应用程序中 如果我使用BufferedImage与类型int rgb 我需要大约 1235mb 的堆内存来加载 这是一个非常大的内存量 最终用户可能拥有更少的内存 1GB 或更少 在我的开
  • 如何捕获 X 错误?

    我尝试在网上搜索 但我必须注意 找到有关 X 编程这方面的材料并不容易 我使用 X 和 GLX 来创建 OpenGL 上下文 我已经知道我当前的显卡驱动程序仅支持 OpenGL API 版本 3 3 但我希望我的应用程序能够尝试创建任何类型
  • 解析,用三点参数替换

    让我们考虑一个典型的deparse substitute R call f1 lt function u x y print deparse substitute x varU vu varX vx varY vy f1 u varU x
  • 最好的 Flash 音频/视频 + 交互服务器?

    我正在寻找有关 Flash 实时服务器的建议 目前 我们使用 Moock 的组合Unity http www moock org unity and Red5 http osflash org red5 但有几个问题 首先 我们正在转向 A
  • 安装 python 3 的包

    我倾向于在 Jupyter 笔记本中运行我的代码 这些代码在 python 3 中运行 我的计算机上也有 python 2 我安装了pip3所以我可以专门为 python 3 安装软件包 但这似乎不适合我 mba pip3 install
  • Javascript 中“options = options || {}”是什么意思? [复制]

    这个问题在这里已经有答案了 前几天我看到了一段令我感到好奇的代码片段 但我不太确定它实际上是做什么的 options options 到目前为止我的想法 设置变量options重视options如果存在 如果不存在 则设置为空对象 Yes
  • angular2 rc5 路由器服务单例

    我最近迁移到 Angular 2 RC 5 并将应用程序中的子模块转换为 NgModule 鉴于以下情况plunker https angular io resources live examples router ts plnkr htm
  • F# 如何标记用户输入:分隔数字、单位、单词?

    我对 F 相当陌生 但最近几周一直在阅读参考资料 我希望处理用户提供的输入字符串 识别并分隔组成元素 例如 对于此输入 XYZ 酒店 6 晚 220 欧元 晚 加17 5 的税 输出应该类似于元组列表 XYZ 字 酒店 字 6 数字 夜晚
  • 检查 WebRTC 连接 - 可靠的方法

    我有一个实时视频聊天应用程序 并且使用支持 STUN TURN 和 UPD TCP 传输的 TURN 服务器 有时用户可以连接到网络blocksWebRTC 连接的端口和协议就这么多不可能发生 通常这些是公司网络 我想在用户尝试相互连接之前
  • 如何按 data.table 中的十分位数组计算统计数据

    我有一个 data table 想按组计算统计数据 R set seed 1 R DT data table a rnorm 100 b rnorm 100 这些组应该定义为 R quantile DT a probs seq 1 9 1
  • FPDI/FPDF:水印和打印多页

    我修改了这个堆栈问题 当用户尝试下载文件时在 pdf 文件上应用水印 https stackoverflow com questions 3983432 applying watermarks on pdf files when users
  • 加载pickle时出错

    无法加载 pickle 文件 我正在使用 python 3 5 import pickle data pickle load open D ud120 projects final project final project dataset
  • locationOfTouch 和 numberOfTouches

    你好 我有这个识别器 设置为 2 次触摸 但它只返回一个 而不是两个 CGPoint void gestureLoad UIGestureRecognizer recognizer recognizer UITapGestureRecogn
  • 将自定义数据包含到 iOS 故障转储中

    你好 堆栈溢出 有一个简单的问题要问您 当我的应用程序在用户的设备上崩溃时 是否可以将自定义错误数据嵌入到自动生成的 iOS 故障转储中 例如 我的 SQlite 数据库由于某种原因无法运行 例如 数据库文件已损坏 我无法从这个错误中恢复