macOS SDK 故障排除

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方法。

安装过程中的问题

  1. 在控制台中,查找包含消息“已成功配置 App Center SDK”的断言日志。 这将验证 SDK 是否已成功配置。
  2. 如果使用 Cocoapods 将 App Center 集成到 macOS 应用中,并遇到错误并显示消息 - CocoaPods - Unable to find a specification for AppCenter,请运行 pod repo update 以更新本地 Cocoapods 存储库,然后再次运行 pod install
  3. 如果要手动集成 SDK 二进制文件,请确保为项目启用模块。

分析数据不会显示在门户中。

  1. 确保已正确集成 SDK 模块。

  2. 请确保将正确的应用机密与方法调用一起包含在内 start:withServices: 。 可以通过在门户中打开应用并导航到入门页来复制确切start:withServices:的代码。

  3. 如果想要查看发送到后端的日志,请在应用程序中将日志级别更改为 “详细” ,SDK 将在 控制台中打印日志。 在 SDK 启动之前插入以下调用:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    确保“已成功配置 App Center SDK”显示在信息日志级别) 的日志 (中,如果看到 HTTPS 请求日志,则检查。

  4. 确保设备处于联机状态,并且应用可以访问 Internet。

    注意

    如果应用使用应用沙盒,则必须设置允许传入 (服务器) 和传出 (客户端) 连接的功能,以允许应用访问 Internet。 Xcode 9 默认启用应用沙盒,但需要显式设置传入和传出连接的功能。

    在项目导航器中选择项目,选择“ 功能 ”选项卡,如果应用正在使用沙盒,请添加用于传入和传出连接的功能。

  5. 有时,日志可能需要几分钟才能显示在门户中。 如果是这样,请等待一段时间。

  6. 若要检查 App Center 后端是否已收到数据,请转到 Analytics 服务中的“日志流”部分。 事件发送后应显示。

崩溃不会显示在门户中。

  1. 确保已正确集成 SDK 模块。

  2. 请确保将正确的应用机密与方法调用一起包含在内 start:withServices: 。 可以通过在门户中打开应用并导航到入门页来复制确切start:withServices:的代码。

  3. 崩溃后重启应用。 App Center 崩溃 只会在应用重启后转发故障日志。 此外,如果已附加到调试器,SDK 不会转发任何崩溃日志。 确保应用崩溃时未附加调试器。

  4. 如果想要查看发送到后端的日志,请在应用程序中将日志级别更改为 “详细” ,SDK 将在 控制台中打印日志。 在 SDK 启动之前插入以下调用:

    [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
    
    AppCenter.logLevel = .verbose
    

    确保“已成功配置 App Center SDK”显示在信息日志级别) 的日志 (中,如果看到 HTTPS 请求日志,则检查。

  5. 请勿使用提供故障报告功能的任何其他库。 你的应用中只能集成一个崩溃报告 SDK。

  6. 确保设备处于联机状态,并且应用可以访问 Internet。

    注意

    如果应用使用应用沙盒,则必须设置允许传入 (服务器) 和传出 (客户端) 连接的功能,以允许应用访问 Internet。 Xcode 9 默认启用应用沙盒,但需要显式设置传入和传出连接的功能。

    在项目导航器中选择项目,选择“ 功能 ”选项卡,如果应用正在使用沙盒,请启用传入和传出连接。

  7. 有时,日志可能需要几分钟才能显示在门户中。 如果是这样,请等待一段时间。

  8. 如果要检查 SDK 是否在下一个应用启动时检测到崩溃,可以调用 API 来检查应用是否在上一个会话中崩溃并显示警报。 或者,可以扩展故障 didSucceedSendingErrorReport 回调,以查看它是否已成功发送到服务器。

  9. 若要检查 App Center 后端是否收到故障,请转到 Analytics 服务中的“日志流”部分。 发送崩溃后,崩溃应会显示在那里。

保护 App Center 机密值

app_secret是应用的标识符,需要知道流量应用于哪个应用,并且不能用于检索或编辑现有数据。 app_secret如果你被公开,最大的风险是将错误数据发送到你的应用,但它不会影响数据的安全性。

若要检索任何敏感数据,需要提供在客户端生成的应用/用户 令牌。 无法使客户端上的数据完全安全。

可以通过使用环境变量将应用机密注入代码来提高应用的安全性。 这样,机密就不会在代码中可见。