是否可以从TestFlight用户检索错误日志消息?

时间:2019-06-04 23:00:02

标签: ios logging testflight

我有一个Beta 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检索这些记录的错误消息?另外,测试人员是否可以通过内置方式手动向我发送应用日志?我只遇到了检索崩溃日志的方法,该方法行不通,因为该错误不会触发崩溃。

我知道有第三方服务/库可以完成此任务,但我不想添加其他依赖项。

1 个答案:

答案 0 :(得分:0)

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

我确实找到了一种方法,可以让用户使用sysdiagnose手动发送日志,但这有点麻烦。详细信息are documented by Apple here(您必须登录到Apple开发人员帐户才能查看链接)。我正在按照与another answer相同的步骤进行操作,该步骤介绍了如何检索os_log消息。

基本步骤是:

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