# 配置构建

> Configure build settings and requirements for your Unity project using Build Automation.

构建配置定义了用于创建项目特定构建版本的设置和要求。构建配置是一种结构化设置，它决定了项目如何编译、打包以及为在不同平台上部署做准备。创建构建配置后，您可以针对其进行多次构建尝试。配置中指定的所有设置（例如平台、Unity 版本和凭据）会自动应用于每次构建尝试，以确保所有构建之间的一致性和可重复性。

要设置构建配置，请执行以下操作：

1. 登录 [Unity Dashboard](https://cloud.unity.com)。
2. 选择 **DevOps** > **Build Automation** > **Configurations（配置）**。

## 先决条件##prerequisites

在设置第一个构建配置之前，请确保已配置好项目的[源代码控制设置](../get-started-with-build-automation/connect-your-version-control-system)。首次配置时必须完成此步骤。

选择 **Get started（开始）** 以配置源代码控制。


**构建目标配置 - 配置源代码控制:**
![构建目标配置 - 配置源代码控制](/api/media?file=/build-automation/media/images/build-automation/build-configuration-source-control.png "UBA - 构建目标配置 - 配置源代码控制")

## 选择构建配置流程##choose-a-build-configuration-flow

有两个选项可以设置新的构建配置：快速目标设置和目标设置。

### 快速目标设置##quick-target-setup

如果选择 **Quick target setup（快速目标设置）**，控制面板将显示为每个平台配置构建目标所需的基本配置。如果不想为构建目标配置高级设置，请选择 **Quick target setup（快速目标设置）**。


**构建目标配置 - 快速目标设置:**
![构建目标配置 - 快速目标设置](/api/media?file=/build-automation/media/images/build-automation/quick-target-setup.png "UBA - 构建目标配置 - 快速目标设置")

### 目标设置##target-setup

选择 Target setup（目标设置）时，首先要设置启动构建目标所需的基本设置。然后，可以保存配置或转到高级设置。


**构建目标配置 - 高级设置:**
![构建目标配置 - 高级设置](/api/media?file=/build-automation/media/images/build-automation/advanced-settings.png "UBA - 构建目标配置 - 高级设置")

#### 基本信息##basic-info

Basic Info（基本信息）部分包含用于定义构建核心设置的字段：

| 设置                                                         | 描述                                                                                                                                      |
| ---------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| **Target name（目标名称）**                                      | 为构建目标配置设置一个唯一名称。                                                                                                                        |
| **Branch（分支）**                                             | 选择 Build Automation 将从中拉取的分支。                                                                                                           |
| **Project subfolder path（项目子文件夹路径）**（可选）                   | 指定包含 `Assets` 和 `ProjectSettings` 的文件夹（如果它们不在代码仓库的根目录中）。                                                                                |
| **Unity 版本**                                               | 选择您使用的 Unity 版本。Unity 版本控制一些高级设置的可用性，例如构建器操作系统和版本，以及无界面模式。                                                                              |
| **Auto detect Unity version（自动检测 Unity 版本）**               | 启用此选项后，Unity Build Automation 将从项目中的 `ProjectSettings/ProjectVersion.txt` 检测 Unity 版本。请确保将此文件包含在源代码控制中。                                 |
| **Builder Operating System and Version（构建器操作系统和版本）**       | 选择构建机器的操作系统和版本。这受所用平台的影响。如需了解更多信息，请参阅[每个构建器 OS 上支持的平台](../reference/supported-platforms-on-each-builder-os)。                            |
| **Xcode version（Xcode 版本）**（仅适用于 macOS 构建器）                | 选择 **Default（默认）** 可使用所选操作系统的默认 Xcode 版本。选择 macOS 构建器操作系统时，会显示此选项。如需了解支持的版本，请参阅[可用的 Xcode 版本](../reference/available-xcode-versions)指南。 |
| **Unity Editor architecture（Unity 编辑器架构）**（仅适用于 macOS 构建器） | 为在基于 Apple 芯片的操作系统上运行的构建指定 [Unity 编辑器架构](../reference/editor-architecture-specifications)。                                              |
| **Android SDK version（Android SDK 版本）**（仅适用于 Android 版本）   | 设置用于构建 Unity 项目的 Android SDK 版本。如需了解更多信息，请参阅 [Android SDK 与 Unity 版本兼容性](../reference/available-android-sdk-versions)指南。                |


**构建目标配置 - 基本信息:**
![构建目标配置 - 基本信息](/api/media?file=/build-automation/media/images/build-automation/build-configuration-basic-info.png "UBA - 构建目标配置 - 基本信息")

#### 构建器配置##builder-configuration

选择用于构建的机器规格。合适的设置取决于项目的复杂程度和平台要求。有关构建器配置的更多详细信息，请参阅[选择机器规格](../optimize-build-speed/choose-machine-specification)。

#### 凭据##credentials

Credentials（凭据）部分使您能够提供 Build Automation 用于对构建进行签名的凭据，以确保构建 Artifact 的安全性和完整性。提供所需的凭据，例如 Android 的密钥库或 macOS 的签名证书。

#### 调度##scheduling

Scheduling（调度）部分使您能够自动触发构建并设置定期构建计划。| 设置 | 描述 | |---|---| | **Auto-build（自动构建）**| 当在代码仓库中检测到更改时自动启动构建。| | **Auto-cancel（自动取消）**| 如果触发了新的构建，则自动取消待处理的构建。| | **Build schedule（构建计划）**| 使用间隔、日期和时间等选项配置重复的构建计划。|

如需了解更多详细信息，请参阅[自动运行构建](../run-builds/run-builds-automatically)。

#### Android 配置##android-configurations

选择 Android 作为目标平台时，会有其他构建设置可供使用。

在目标配置的 **Basic Info（基本设置）** 部分中，第一个设置是 Android SDK 版本。使用此设置可选择首选的 Android SDK 版本，具体取决于所选的 Unity 版本。如需了解更多信息，请参阅 [Android SDK 与 Unity 版本兼容性](../reference/available-android-sdk-versions)指南。

其余特定于 Android 的设置位于 **Advanced Settings（高级设置）** 中的 **Platform specific settings (Android)（针对特定平台的设置 (Android)）** 下。

| 设置                                                                       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Build app bundles (.aab) instead of an APK（构建应用程序捆绑包 (.aab) 而不是 APK）** | Android 应用程序捆绑包是一种上传格式，其中包含您应用程序的所有已编译代码和资源，但会将 APK 生成和签名推迟到 Google Play 进行。您还必须使用 Gradle 构建系统。如需了解更多信息，请参阅 [Android 应用程序捆绑包文档](https://developer.android.com/guide/app-bundle)。                                                                                                                                                                                                                                                                                                   |
| **Build asset packs（构建资源包）**                                             | 仅在构建应用程序捆绑包时，构建资源包才可用。如果启用此选项，Unity Build Automation 将使用来自 [Google Play Unity 插件](https://github.com/google/play-unity-plugins/releases)的 Google Play 构建方法来构建带有资源包的应用程序捆绑包。您需要在项目中安装该插件。您还必须在构建前脚本中[以编程方式配置资源包](https://developer.android.com/guide/playcore/asset-delivery/integrate-unity?language=api#configure-asset-packs-api)，并调用 `AssetPackConfigSerializer.SaveConfig` 方法。如需了解更多信息，请参阅 [Android Play 资源交付文档](https://developer.android.com/guide/playcore/asset-delivery)。 |
| **Make split binary application builds（进行拆分二进制应用程序构建）**                  | 此设置会设定 [`PlayerSettings.Android.useAPKExpansionFiles`](https://docs.unity3d.com/2022.3/Documentation/ScriptReference/PlayerSettings.Android-useAPKExpansionFiles.html) 标志。如需了解更多信息，请参阅 [Android 对 APK 扩展文件 (OBB) 的支持文档](https://docs.unity3d.com/Manual/android-OBBsupport.html)。如果启用了 Build Asset Packs（构建资源包）选项，Unity Build Automation 会忽略此选项。                                                                                                                                   |


**构建目标配置 - Android 设置:**
![构建目标配置 - Android 设置](/api/media?file=/build-automation/media/images/build-automation/android-settings.png "UBA - 构建目标配置 - 高级设置 - 针对特定平台的设置")

#### 通用 Windows 平台配置##universal-windows-platform-configurations

当所选目标平台为通用 Windows 平台 (UWP) 时，会有其他构建设置可供使用。通过这些设置可以对如何构建 UWP 应用程序以及如何配置目标设备进行精细控制。

如需全面了解 UWP 设置，请参阅 [UWP 构建设置文档](https://docs.unity3d.com/2021.3/Documentation/Manual/windowsstore-buildsettings.html)。

目标配置的 **Basic Info（基本设置）** 部分包含以下特定于 UWP 的选项：

| 设置                                          | 描述                                                                                                                                                                                                                               |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Visual Studio version（Visual Studio 版本）** | 定义用于构建 UWP 应用程序的 Visual Studio 版本。如果使用的是 Unity 2022.2 或更高版本，则无论此设置如何，都会自动选择最新的 Visual Studio 版本。                                                                                                                                 |
| **Windows SDK version（Windows SDK 版本）**     | 设置使用 Visual Studio 进行构建时应用程序所针对的 Windows SDK 版本。这取决于所选的 Visual Studio 版本。                                                                                                                                                        |
| **Build type（构建类型）**                        | 确定 Unity 生成的 UWP 构建输出的类型。可用选项包括：`Executable Only`、`D3D` 或 `XAML`。这些选项决定了输出是独立的可执行文件还是使用特定的呈现框架。                                                                                                                                  |
| **构建配置**                                    | 指定 Visual Studio 项目输出的优化级别。选项包括：`Debug`、`Release`（默认值）和 `Master`。这些设置会影响最终输出的分析和性能。                                                                                                                                              |
| **Target device family（目标设备系列）**            | 定义应用程序支持的 UWP 设备系列。默认情况下，此选项设置为 `Universal` 并针对所有受支持的设备。您也可以选择特定的系列，例如桌面、Xbox、HoloLens 或 IoT。如需了解更多，请参阅 [WSATargetFamily 文档](https://docs.unity3d.com/2021.3/Documentation/ScriptReference/PlayerSettings.WSATargetFamily.html)。 |


**构建目标配置 - UWP 基本设置:**
![构建目标配置 - UWP 基本设置](/api/media?file=/build-automation/media/images/build-automation/uwp-basic-settings.png "UBA - 构建目标配置 - 基本设置 - 针对特定平台的设置")

目标配置的 **Advanced Settings（高级设置）** 包括其他特定于 UWP 的选项：

| 设置                                                    | 描述                                                                                                                                             |
| ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Application Capabilities（应用程序功能）**                  | 指定应用程序期望使用的系统资源和功能的功能。如需了解更多详细信息，请参阅[功能属性文档](https://docs.unity3d.com/2021.3/Documentation/ScriptReference/PlayerSettings.WSACapability.html)。 |
| **Executable-only CPU architecture（仅限可执行文件的 CPU 架构）** | 仅当 **build type（构建类型）** 设置为 `Executable Only` 时可用。确定输出可执行文件将支持的 CPU 架构。如果未提供值，则默认为 `x64`。                                                      |
| **Targeted CPU platform（目标 CPU 平台）**                  | 仅当 **build type（构建类型）** 设置为 `D3D` 或 `XAML` 时可用。设置 `AppxBundlePlatforms` 属性，该属性指定输出的目标 CPU 架构。如果未提供值，则默认为 `x64`。                                |


**构建目标配置 - UWP 高级设置:**
![构建目标配置 - UWP 高级设置](/api/media?file=/build-automation/media/images/build-automation/uwp-advanced-settings.png "UBA - 构建目标配置 - 高级设置 - 针对特定平台的设置")
