# 1. Build Profiles
Part of [[Build Automation and CI]]. Next: [[2. Command Line Builds and a Build Script]].
> [!note] Verification status
> The 6000.5 manual's "Create a build from the Editor" topic states that the **Build Profiles** window was previously named **Build Settings**, and that you use profiles to build for different platforms with unique configurations. Subtopics cover introducing profiles, creating and managing them, managing scenes, customizing settings, and the window reference. **The exact 6000.5 menu path and every inspector label were not click-verified in an Editor.** In current Unity 6 editors the window is commonly **File > Build Profiles**.
## 1.1 Why profiles exist
A Unity 6 project is no longer "whatever was last selected in Build Settings." A **build profile** is an asset that captures:
- The **platform** (Windows, Android, iOS, WebGL, …)
- The **scene list** for that product
- Player / quality / graphics / stripping / scripting-define overrides you choose to put on the profile
- Later: a hook for Unity Build Automation (part 4)
You can have `Windows.Dev`, `Windows.Release`, `Android.Quest2`, `WebGL.ClassDemo` as first-class files in the project, versioned in Git ([[Version Control]]). That is the difference between "it built on my machine" and "this is the class midterm build."
## 1.2 Create profiles
1. Open the **Build Profiles** window (File > Build Profiles; confirm in your Editor if the menu has moved).
2. Add a profile for each platform you actually ship or teach. The **Platform Browser** (documented as its own 6000.5 reference page) is the picker for a new platform.
3. Name the asset clearly and keep it under something like `Assets/Settings/Build Profiles/` — GameCI's docs use that path in examples.
4. Configure the **scene list** on the profile: add, exclude, reorder. Production profiles should not include test fixture scenes ([[4. Play Mode Tests and Scene Fixtures]]).
5. Set Development Build / scripting backend / IL2CPP / architecture on the profile that needs them. A Quest profile is Android, IL2CPP, ARM64, and the XR settings from [[3.Quest 2 Project and Build Setup]] — not a copy of the Windows profile with the platform switched at the last minute.
Switching the **active** profile in the Editor is how you change "what Build does." In batch mode, do not rely on switching the active profile *from a running script*; pass `-activeBuildProfile` on the command line instead (part 2). That limitation is official and will waste a lab if you skip it.
## 1.3 Settings discipline
Put in a profile only what must differ. Shared quality can still live on a URP asset you *reference* from the profile or from Quality settings. If every profile silently diverges (different color space, different API compatibility level), you will debug "the Android build is pink" for an afternoon.
Document, in the repo README or in the profile's name:
- Scripting backend (Mono vs IL2CPP)
- Input handling (Input System package)
- XR enabled or not
- Development vs release
## 1.4 Builds you still do by hand
CI does not replace a local **Build Profiles > Build** when you are iterating on Player Settings. It replaces "the one Windows zip on a USB stick that might be a week old." Use local profiles during lab, and have CI produce the same profile on every push to `main`.
## Official docs
- Create a build from the Editor: https://docs.unity.com/en-us/engine/6000.5/manual/building-and-publishing/build-settings