其他 tvOS API

重要

Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息

调整日志级别

可以控制从控制台中的 App Center 显示的日志消息量。 使用setLogLevel: API在调试时启用额外日志记录。 默认情况下,对于 App Store 环境,它设置为 LogLevelAssert ,否则设置为 LogLevelWarning

若要尽可能多地记录消息,请使用 MSACLogLevelVerbose/LogLevel.verbose

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

识别安装

安装应用后,App Center SDK 会为每个设备创建 UUID。 当应用更新时,此标识符对于设备保持不变,并且仅在重新安装应用时生成一个新标识符。 以下 API 可用于调试目的。

NSUUID *installId = [MSACAppCenter  installId];
var installId = AppCenter.installId

标识用户

App Center SDK 支持设置用户 ID,用于增强崩溃报告。 若要使用此功能,

  1. 按照 :start:withServices:中所述调用来配置 App Center SDK。
  2. 在 SDK 中使用以下代码设置 userID
[MSACAppCenter setUserId:@"your-user-id"];
AppCenter.userId = "your-user-id"

设置用户 ID 后,可以使用 App Center 的搜索功能搜索 ID 的特定故障报告。 在 App Center 的 搜索文档中了解详细信息。

注释

用户 ID 的值限制为 256 个字符。 它将随故障报告一起显示,但不用于聚合或受影响用户的计数。 如果多次设置用户 ID,则只会使用最后一个用户 ID。 需要在每次应用程序启动之前自行设置用户 ID,因为此值不会由 SDK 在启动之间存储。

在运行时禁用所有服务

若要一次性禁用所有 App Center 服务,请使用 setEnabled API。 禁用后,SDK 不会将任何信息转发到 App Center。

[MSACAppCenter setEnabled:NO];
AppCenter.enabled = false

若要再次启用所有服务,请使用相同的 API,但作为参数传递 YES/true

[MSACAppCenter setEnabled:YES];
AppCenter.enabled = true

状态在应用程序启动时保留在设备的存储中。

注释

此方法只能在启动 AppCenter 后使用。

禁止网络请求

在 App Center SDK 中,默认允许网络请求。 如果要发送 App Center SDK 由用户关注收集的数据,可以禁止自动发送数据。

[MSACAppCenter setNetworkRequestsAllowed:false];
AppCenter.networkRequestsAllowed = false

在这种情况下,App Center SDK 将继续收集数据,但仅在允许网络请求时发送。

[MSACAppCenter setNetworkRequestsAllowed:true];
AppCenter.networkRequestsAllowed = true

注释

此值在每次启动之间会保留。

可以随时检查是否允许在 App Center SDK 中发送数据。

[MSACAppCenter isNetworkRequestsAllowed];
AppCenter.networkRequestsAllowed

在运行时更改服务状态

使用以下代码在运行时启用或禁用服务:

[MSACAnalytics setEnabled:NO];
Analytics.enabled = false

注释

此方法只能在启动 Analytics 后使用。

检查是否已启用 App Center

还可以检查 App Center 是否已启用。

[MSACAppCenter isEnabled];
AppCenter.enabled

注释

此方法应仅在 AppCenter 启动后使用,在启动前,它将始终返回 false

在运行时检查应用中心 SDK 版本

可以获取当前正在使用的 App Center SDK 版本。

[MSACAppCenter sdkVersion];
AppCenter.sdkVersion

存储大小

使用 App Center SDK 时,日志存储在设备本地。 大型日志可能会占用大量空间,因此可以选择限制本地数据库的大小。 它还可以与 pauseresume API 结合使用。 如果希望暂停很长时间,则可以使用更大的数据库大小来存储更多事件。

使用 setMaxStorageSize API 设置本地数据库的大小。 API 是异步的,启动 completionHandler App Center 服务时会调用该 API。 因此,必须在调用 setMaxStorageSize 之前调用 AppCenter.start。 只能调用 API 一次。

// Use 20 MB for storage.
[MSACAppCenter setMaxStorageSize:(20 * 1024 * 1024) completionHandler:^(BOOL success) {
    if (!success) {
        // The success parameter is false when the size can't be honored.
    }
}];
[MSACAppCenter start:@"{Your App Secret}", withServices:@[[MSACAnalytics class]]];
// Use 20 MB for storage.
AppCenter.setMaxStorageSize(20 * 1024 * 1024, completionHandler: { (success) in
    if !success {
        // The success parameter is false when the size can't be honored.
    }
})
AppCenter.start(withAppSecret: "{Your App Secret}", services:[Analytics.self])

如果未设置最大存储大小,SDK 将使用默认的最大大小 10 MB。 允许设置的最小大小为 20 KB。

注释

实际最大存储大小可能略高于所选值。 SQLite 将大小向上舍入到页面大小的下一个整数倍。 App Center SDK 使用的页面大小为 4 KB。

注释

超过 25 天的日志将被丢弃。

API 调用失败

有很多原因可能导致completionHandler调用返回 false。

  • 指定的大小是无效值(小于 20 KB 或大于 140 TB)。
  • 当前数据库大小大于指定的最大大小。
  • 已调用 API。 每个进程只能配置一次。
  • API 已在AppCenter.startAppCenter.configure之后调用。

可以使用日志标记检查控制台 AppCenter 中的警告和错误,以排查配置问题。