【问题标题】:Is it possible to retrieve error log messages from a TestFlight user?是否可以从 TestFlight 用户那里检索错误日志消息?
【发布时间】:2019-06-04 23:00:02
【问题描述】:

我有一个测试版 iOS 应用程序,它通过 TestFlight 分发给测试人员。有时,这些测试人员会遇到不会触发崩溃但会导致体验下降的错误。我使用带有错误日志级别的os_log 记录所有这些错误,但我不确定如何检索日志,除非我物理连接他们的设备并在控制台中查看日志。

例如,应用在创建帐户时可能会遇到未知错误。该应用会显示一条警报,通知用户发生错误,然后使用os_log 记录错误的详细信息。

import UIKit
import os.log

class MyViewController: UIViewController {
    func signUpButtonTapped() {
        do {
            // Try to create the user's account, which might throw an exception.
            try createUserAccount()
        } catch {
            os_log("Unknown sign up error: %@", log: .default, type: .error, String(describing: error))

            let alert = UIAlertController(title: "Sign Up Error", message: "There was an error creating your account.", preferredStyle: .alert)
            alert.addAction(UIAlertAction(title: "OK", style: .default))
            present(alert, animated: true)
        }
    }
}

是否可以通过 TestFlight 检索这些记录的错误消息?或者,测试人员是否有一种内置方式可以手动向我发送应用程序的日志?我只遇到过检索崩溃日志的方法,这不起作用,因为错误不会触发崩溃。

我知道有 3rd 方服务/库可以完成此操作,但我不想添加其他依赖项。

【问题讨论】:

  • 你找到解决办法了吗?

标签: ios logging testflight


【解决方案1】:

似乎无法从 TestFlight 用户那里远程检索日志。

我确实找到了一种方法让用户手动使用sysdiagnose 发送日志,但它有点麻烦。详细信息are documented by Apple here(您必须登录 Apple 开发者帐户才能查看链接)。我正在遵循与 another answer 相同的步骤,即如何检索 os_log 消息。

基本步骤是:

  1. 要求用户同时按下并松开音量按钮和侧面(或顶部)按钮 1 到 1.5 秒。
  2. 最多等待 10 分钟以完成诊断收集。
  3. 转到:Settings.app > 隐私 > 分析 > 分析数据
  4. 一直向下滚动,直到看到以“sysdiagnose”开头的项目。文件名将包含日期/时间,类似于“sysdiagnose_YYYY.MM.DD_HH-MM-SS-XX”。
  5. 点击 sysdiagnose 文件。它将显示一个空白屏幕,右上角有一个分享按钮。
  6. 点击分享按钮(或与 iTunes 同步)发送日志。该文件将很大(大约 300 MB),因此您需要 AirDrop 或找到其他方式来发送它。由于尺寸太大,电子邮件无法使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多