重要
Visual Studio App Center 于 2025 年 3 月 31 日停用,但分析和诊断功能除外,这些功能将继续受支持,直到 2026 年 6 月 30 日。 了解详细信息。
App Center SDK 使用模块化体系结构,因此你可以使用任何或所有服务。
让我们开始设置 App Center Unity SDK,以使用 App Center Analytics 和 Crash 功能。 若要将 App Center Distribute 添加到应用,请参阅 App Center Distribute 的文档。
1.先决条件
在开始之前,请确保已在 Unity 2018.1 或更高版本中设置项目。
适用于 Unity 的 App Center SDK 支持以下平台:
- iOS (9.0 或更高版本)
- Android (5.0/API 21 或更高版本)
- UWP (内部版本 16299 或更高版本)
注释
UWP 平台上不再支持 .NET 3.5 脚本运行时版本和 .NET 脚本后端。
若要了解如何使用协程/回调代替使用 async/await
与 .NET 3.5
后端,请参阅文档中 Unity SDK 部分的异步 API。
此外,App Center SDK for Unity 仅在 C# 中可用。
2.在 App Center 门户中创建应用以获取应用机密
如果已在 App Center 门户中创建了应用,则可以跳过此步骤。
- 前往 appcenter.ms。
- 注册或登录到 App Center。
- 单击门户右上角的蓝色按钮,显示“ 添加新 ”,然后从下拉菜单中选择“ 添加新应用 ”。
- 输入应用的名称和可选说明。
- 根据上述项目选择适当的 OS 和平台。
- 单击页面右下角的“ 添加新应用 ”按钮。
创建应用后,可以在 App Center 门户的“设置”页上获取其应用机密。 在 “设置” 页面的右上角,单击 三个垂直点 并选择 Copy app secret
获取应用机密。
3.将 App Center SDK 添加到项目
3a 安装扩展编辑器
App Center SDK 通过将 Unity 包导入项目来集成。 为此,请先安装 App Center Unity 编辑器扩展 插件。 通过 Unity 菜单打开编辑器扩展:窗口 > App Center > 编辑器扩展并选择“安装 App Center SDK”。
注释
在 Unity 版本 2019.1.2f1 及更新版本中,安装过程中日志中可能存在错误,例如 Coroutine continue failure
。 这是一个已知的 Unity 问题,应将其忽略。
3.1b 安装单个包
或者,可以下载和导入每个单独的 Unity 包。 它们位于 App Center Unity SDK GitHub 页上。 下载要使用的包的最新版本。 其名称应采用 AppCenter{Analytics/Crashes/Distribute}-v{version}.unitypackage 格式。
3.2b 导入包
打开 Unity 项目,然后双击下载的包。 此时,Unity 项目中应显示一个弹出窗口,其中包含文件列表。 选择 “导入”,SDK 将添加到项目中。 对您下载并计划在项目中使用的每个包重复此步骤。
4.启用 SDK
4.1 创建空的游戏对象
App Center 作为一个组件,附加到游戏启动时进入的场景中的游戏对象上。 导航到此场景并添加一个空的游戏对象。 为它指定描述性名称,例如“App Center”。
4.2 附加 App Center 脚本
在 “项目 ”窗口中,导航到已添加到项目的“AppCenter”文件夹。 找到名为 AppCenterBehavior 的脚本,并将其拖到 “层次结构” 窗口中新创建的游戏对象上。
注释
无需将 App Center 添加到要使用的每个场景。 将其添加到第一个加载的场景就足够了。
4.3 配置 App Center 设置
单击此新的“App Center”对象,并将应用机密添加到 检查器 窗口中的相应字段。 请务必勾选每个你想使用的应用中心服务的“使用 {service}”框。
警告
不建议在源代码中嵌入应用机密。
注释
如果项目不支持设置中列出的三个平台之一,请将应用机密字段保留 as-is;它不起作用。 如果项目支持 App Center 不支持的平台,则 API 和配置对这些平台没有影响。
很好,你已经准备好在门户中可视化 SDK 自动收集的分析和诊断(崩溃和错误)数据。
查看 App Center Analytics 和 App Center 崩溃 的文档,了解如何在两个服务中使用更高级的功能。
若要了解如何开始使用应用内更新,请阅读 App Center Distribute 的文档。
5. 备份规则 (仅限 Android)
注释
面向 Android 6.0(API 级别 23)或更高版本的应用会自动启用自动备份。
注释
如果已有具有备份规则的自定义文件,请切换到第三步。
注释
如果还没有自己的 AndroidManifest.xml 文件,请在 Assets/Plugins/Android 文件夹中创建该文件。 此清单将在构建时与 Unity 创建的默认清单合并。
如果使用自动备份来避免获取有关设备的错误信息,请执行以下步骤:
5.1. 对于 Android 11(API 级别 30)或更低版本。
- 在 Assets/Plugins/Android/res/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
- 打开项目的 AndroidManifest.xml 文件。 将
android:fullBackupContent
属性添加到<application>
元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:fullBackupContent="@xml/appcenter_backup_rule"
- 将以下备份规则添加到 appcenter_backup_rule.xml 文件:
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
<exclude ___domain="sharedpref" path="AppCenter.xml"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude ___domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude ___domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</full-backup-content>
5.2. 对于 Android 12(API 级别 31)或更高版本。
- 在 Assets/Plugins/Android/res/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
- 打开项目的 AndroidManifest.xml 文件。 将
android:dataExtractionRules
属性添加到<application>
元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:dataExtractionRules="@xml/appcenter_backup_rule"
- 将以下备份规则添加到 appcenter_backup_rule.xml 文件:
<data-extraction-rules xmlns:tools="http://schemas.android.com/tools">
<cloud-backup>
<exclude ___domain="sharedpref" path="AppCenter.xml"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude ___domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude ___domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</cloud-backup>
<device-transfer>
<exclude ___domain="sharedpref" path="AppCenter.xml"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude ___domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude ___domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude ___domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</device-transfer>
</data-extraction-rules>