Unity 入门

重要

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

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

App Center SDK 使用模块化体系结构,因此你可以使用任何或所有服务。

让我们开始设置 App Center Unity SDK 以使用 App Center 分析和崩溃。 若要将 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 门户中创建了应用,则可以跳过此步骤。

  1. 前往 appcenter.ms
  2. 注册或登录到 App Center。
  3. 单击门户右上角显示 “添加新应用 ”的蓝色按钮,然后从下拉菜单中选择“ 添加新应用 ”。
  4. 输入应用的名称和可选说明。
  5. 如上所述,根据项目选择适当的 OS 和平台。
  6. 单击页面右下角的 “添加新应用 ”按钮。

创建应用后,可以在 App Center 门户的“设置”页上获取其应用机密。 在 “设置” 页面的右上角,单击 三个垂直点 ,然后选择 Copy app secret 获取应用机密。

3. 将 App Center SDK 添加到项目

3a 安装扩展编辑器

通过将 Unity 包导入项目来集成 App Center SDK。 为此,请先安装 App Center Unity 编辑器 Extensions 插件。 通过 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”对象,并将应用机密添加到 “检查器 ”窗口中的相应字段。 确保为要使用的每个 App Center 服务检查“使用 {service}”框

App Center 脚本配置

警告

不建议在源代码中嵌入应用机密。

注意

如果项目不支持设置中列出的三个平台之一,请将应用机密字段保留原样;它将不起作用。 如果项目支持 App Center 不支持的平台,则 API 和配置对这些平台不起作用。


很好,你已准备好在 SDK 自动收集的门户中可视化分析和诊断 (崩溃和错误) 数据。

查看 App Center AnalyticsApp Center 崩溃 的文档,了解如何将更高级的功能用于这两个服务。

若要了解如何开始使用应用内更新,请阅读 App Center Distribute 的文档。

5. 备份规则仅 (Android)

注意

面向 Android 6.0 (API 级别 23) 或更高版本的应用会自动启用自动备份。

注意

如果已有包含备份规则的自定义文件,请切换到第三步。

注意

如果还没有自己的 AndroidManifest.xml 文件,请在 Assets/Plugins/Android 文件夹中创建它。 此清单将与生成时创建的默认 Unity 清单合并。

如果使用自动备份来避免获取有关设备的错误信息,请遵循后续步骤:

5.1. 对于 Android 11 (API 级别 30) 或更低。

  1. Assets/Plugins/Android/res/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
  1. 打开项目的 AndroidManifest.xml 文件。 将 android:fullBackupContent 属性添加到 <application> 元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:fullBackupContent="@xml/appcenter_backup_rule"
  1. 将以下备份规则添加到 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) 或更高版本。

  1. Assets/Plugins/Android/res/xml 文件夹中创建 appcenter_backup_rule.xml 文件。
  1. 打开项目的 AndroidManifest.xml 文件。 将 android:dataExtractionRules 属性添加到 <application> 元素。 它应指向 appcenter_backup_rule.xml 资源文件。
android:dataExtractionRules="@xml/appcenter_backup_rule"
  1. 将以下备份规则添加到 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>