重要
Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息。
调整日志级别
可以控制控制台中从 App Center 显示的日志消息数。 使用LogLevel
API在调试时启用额外日志记录。 默认情况下,对于 App Store 环境,它设置为 ASSERT
,否则为 WARN
。
若要尽可能多地记录消息,请在 App Center 设置或代码中启用 LogLevel.Verbose
。
AppCenter.LogLevel = LogLevel.Verbose;
识别安装
安装应用后,App Center SDK 会为每个设备创建 UUID。 更新应用时,此标识符对于设备保持不变。 仅当重新安装应用时,才会生成新的标识符。 以下 API 可用于调试目的。
System.Guid? installId = await AppCenter.GetInstallIdAsync();
标识用户
App Center SDK 支持设置用户 ID,用于增强崩溃报告。 若要使用此功能,
- 按照 App Center SDK 入门指南中所述配置 App Center SDK。
- 在 SDK 中使用以下代码设置
userID
:
AppCenter.SetUserId("your-user-id");
设置用户 ID 后,可以使用 App Center 的搜索功能搜索 ID 的特定故障报告。 在 App Center 的 搜索文档中了解详细信息。
注释
用户 ID 的值限制为 256 个字符。 它将随故障报告一起显示,但不用于聚合或受影响用户的计数。 如果多次设置用户 ID,则只会使用最后一个用户 ID。 需要在每次应用程序启动之前自行设置用户 ID,因为此值不会由 SDK 在启动之间存储。
在运行时禁用所有服务
如果要一次性禁用所有 App Center 服务,请使用该 Enabled
属性。 禁用后,SDK 不会将任何信息转发到 App Center。
AppCenter.SetEnabledAsync(false);
若要再次启用所有服务,请使用相同的 API,但作为参数传递 true
。
AppCenter.SetEnabledAsync(true);
无需等待此调用即可使其他 API 调用(例如 IsEnabledAsync
)保持一致。
状态在应用程序启动时保留在设备的存储中。
在运行时更改服务状态
可以使用以下代码在运行时启用或禁用该服务:
Analytics.SetEnabledAsync(true);
禁止网络请求
在 App Center SDK 中,默认允许网络请求。 如果要发送 App Center SDK 由用户关注收集的数据,可以禁止自动发送数据。
AppCenter.IsNetworkRequestsAllowed = false;
在这种情况下,App Center SDK 将继续收集数据,但仅在允许网络请求时发送。
AppCenter.IsNetworkRequestsAllowed = true;
注释
此值在每次启动之间会保留。
可以随时检查是否允许在 App Center SDK 中发送数据。
AppCenter.IsNetworkRequestsAllowed;
注释
在 Android 平台上启动 SharedPreferences
之前,AppCenter
中保存的值将被忽略。
它将返回使用 AppCenter.IsNetworkRequestsAllowed = allowed
或 true
设置的最后一个值,如果该值在 AppCenter 启动之前未被更改。
检查是否已启用 App Center
还可以检查 App Center 是否已启用。
bool enabled = await AppCenter.IsEnabledAsync();
在运行时检查应用中心 SDK 版本
可以获取当前正在使用的 App Center SDK 版本。
AppCenter.SdkVersion;
延迟 App Center 的启动
在某些情况下,可能需要延迟 App Center 的开始时间,直到 AppCenterBehavior 启动。 例如,如果要在启动任何 App Center 服务之前请求用户同意。
为此,请将 AppCenterBehaviorAdvanced 添加到游戏对象,并选中 启动自 iOS/Android 应用的本机 SDK 复选框。 这会在 Start
的 方法启动 SDK,并允许您添加自定义对话框或逻辑。
小窍门
如果在生成时生成设置,另一种方法是转到 玩家设置>其他设置>脚本定义符号 并粘贴 APPCENTER_DONT_USE_NATIVE_STARTER
。
Unity SDK 中的异步 API
异步 API 返回对象 AppCenterTask
,而不是直接返回结果,而是立即返回,而不是等待作完成。
可通过三种方法与这些方法进行交互。
方法 1:ContinueWith
在AppCenterTask
的活动完成后执行操作,请使用ContinueWith
方法添加回调。
示例:
AppCenter.IsEnabledAsync().ContinueWith(task =>
{
// Do something with task.Result
});
如果方法具有实际返回值,它将返回 AppCenterTask<{Return Type}>
(如上面的示例所示)。 在这些情况下,回调中的任务参数将具有 Result
可以访问的属性。
方法 2:内置语言功能
如果你正在编写可以访问 .NET 4.6 或更高版本的代码,那么AppCenterTask
可以在异步上下文中await
。
示例:
bool isEnabled = await AppCenter.IsEnabledAsync();
方法 3:协程
AppCenterTask
s 也适用于协程。
示例:
void SomeMethod()
{
StartCoroutine(IsEnabledCoroutine());
}
IEnumerator IsEnabledCoroutine()
{
var isEnabled = AppCenter.IsEnabledAsync();
yield return isEnabled;
// do something with the isEnabled
}