> For the complete documentation index, see [llms.txt](https://developers-apps-in-toss.toss.im/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers-apps-in-toss.toss.im/documentation/api-and-sdk-en/unity/build/build-profiles.md).

# Build profile

`AIT` Explains which settings change automatically for each build entry point in the menu, and how to change their values.

### Action menu

| Menu                              | Purpose                                                                                                        |
| --------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| `AIT > Dev Server > Start Server` | Run the local development server (browser testing with devtools Mock SDK + panel)                              |
| `AIT > Build & Package`           | Create a package for distribution                                                                              |
| `AIT > Deploy (Test)`             | Test deployment after incremental build (`ait deploy`) — Verify on a real device via QR/URL                    |
| `AIT > Deploy (Production)`       | Test deployment after clean build (`ait deploy`) — Submit for review/release from the console after deployment |

`ait deploy`appears in both menus **Always the console QR test environment**(`intoss-private://`) deploys to. Actual release exposed to users is not this CLI command, but after deployment **submit a review request from the console**must be done. For details, see [Getting Started](https://developers-apps-in-toss.toss.im/documentation/unity/first-steps/getting-started).

### Profile matrix

| Task                    | Debug console | Development Build |  WebGL compression |  Stripping Level | LZ4 compression | Debug symbols |
| ----------------------- | :-----------: | :---------------: | :----------------: | :--------------: | :-------------: | :-----------: |
| **Dev Server**          |   ✅ Enabled   |     ✅ Enabled     |      Disabled      |      Minimal     |    ✅ Enabled    |    Embedded   |
| **Build & Package**     |   ❌ Disabled  |     ❌ Disabled    | Automatic (Brotli) | Automatic (High) |    ✅ Enabled    |    External   |
| **Deploy (Test)**       |   ❌ Disabled  |     ❌ Disabled    | Automatic (Brotli) | Automatic (High) |    ✅ Enabled    |    External   |
| **Deploy (Production)** |   ❌ Disabled  |     ❌ Disabled    | Automatic (Brotli) | Automatic (High) |    ✅ Enabled    |    External   |

Deploy (Test) and Deploy (Production) use the same production profile, so the settings above are identical. The difference between them is not in this table, **build scope**(incremental vs clean) and **deployment memo prefix**(`-m "[Test] …"` / `-m "[Production] …"`) — In the console, these prefixes distinguish the two deployments.

> `Mock bridge`is not a build profile item. `devtools`(`@apps-in-toss/devtools`) see the separate section.

### Meaning of each setting

#### devtools

Dev Server only, **not a build profile, `AIT > Configuration`a separate setting of**If enabled, you can run the game in the browser with devtools' Mock SDK without the Toss app, and a panel for manipulating the state appears on screen. Unlike build profiles, it doesn't change build artifacts, so after changing the setting **it takes effect just by restarting the server**is done. The return values and limitations are summarized in [API usage patterns](https://developers-apps-in-toss.toss.im/documentation/unity/first-steps/api-usage-patterns)are summarized in the devtools section of

#### Development Build

Unity's Development Build option.

| Value    | Description                                                     |
| -------- | --------------------------------------------------------------- |
| Enabled  | Faster build speed, easier debugging (Profiler can be attached) |
| Disabled | Optimized release build                                         |

#### Debug symbols

Determines where to place debug symbols (source maps). Applies in Unity 2022.3 and later.

| Value    | Description                                                                  |
| -------- | ---------------------------------------------------------------------------- |
| Embedded | Include symbols in build files (larger file size, easier debugging)          |
| External | Separate into a separate file (smaller file size, suitable for distribution) |

#### Debug console

Displays a debug button in the lower-left corner of the screen. Press it to view logs and [SDK events](https://developers-apps-in-toss.toss.im/documentation/unity/add-features/metrics)You can check them. Disable it for production deployment.

#### WebGL compression

The compression format of the final output.

| Value     | Description                                 |
| --------- | ------------------------------------------- |
| Automatic | Uses Brotli (default)                       |
| Disabled  | No compression (prioritize build speed)     |
| Gzip      | Gzip compression                            |
| Brotli    | Brotli compression (best compression ratio) |

Only Dev Server is Disabled for build speed; the other profiles are Automatic (Brotli).

#### Stripping Level

The level of removing unused managed code.

| Value     | Description                                  |
| --------- | -------------------------------------------- |
| Automatic | Use High (default)                           |
| Minimal   | Remove only the minimum code                 |
| Low       | Low level of code stripping                  |
| Medium    | Medium level of code stripping               |
| High      | Aggressively strip code (minimum build size) |

Only Dev Server is Minimal for build speed; the rest are Automatic (High).

> **Note**: Disabled is not supported in WebGL (IL2CPP), so it was removed from the options, and values saved as Disabled in earlier versions are normalized to Minimal. Types referenced only via reflection may be removed at High, so if behavior changes after stripping, `link.xml`specify what to preserve with

#### LZ4 compression

LZ4 compression in Unity's build process. Enabled by default in all profiles.

### Profile customization

1. `AIT > Configuration` Open menu
2. Expand the "Build Profiles" section
3. Expand the desired profile (Dev Server, Production, etc.)
4. Change the checkboxes for each option
5. Changes are saved automatically

Profile settings are `Assets/AppsInToss/Editor/AITConfig.asset`saved to

### Environment variable overrides

In CI/CD or automation scripts, you can override profile values without modifying code. Most of them are `AITBuildInitializer.ApplyEnvironmentVariableOverrides(profile)`applied to a profile copy, and `AIT_IL2CPP_CONFIGURATION`only `Init` is applied directly to PlayerSettings during the stage.

| Environment variable       | Description                        | Allowed values                                                |
| -------------------------- | ---------------------------------- | ------------------------------------------------------------- |
| `AIT_DEBUG_CONSOLE`        | Enable debug console               | `true` / `false`                                              |
| `AIT_COMPRESSION_FORMAT`   | Compression format                 | `-1` (Automatic) / `0` (Disabled) / `1` (Gzip) / `2` (Brotli) |
| `AIT_DEVELOPMENT_BUILD`    | Development Build                  | `true` / `false`                                              |
| `AIT_IL2CPP_CONFIGURATION` | IL2CPP compiler optimization level | `Debug` / `Release` / `Master`                                |

If the allowed values are exceeded, `Debug.LogWarning`warns and ignores only that variable — the build continues.

`AIT_DEVELOPMENT_BUILD`and `AIT_IL2CPP_CONFIGURATION`Both reduce link time, but they are different layers. The former is a Player option and the latter is an IL2CPP compiler optimizer level, so if you want to reduce build time in CI, specifying both has a greater effect.

```bash
AIT_DEBUG_CONSOLE=true \
AIT_COMPRESSION_FORMAT=0 \
/Applications/Unity/Hub/Editor/2022.3.62f1/Unity.app/Contents/MacOS/Unity \
  -quit -batchmode -projectPath ./MyProject
```

These are not the only environment variables read by the SDK. In the packaging stage's `AIT_DISABLE_INSTALL_SKIP`is [the build pipeline](https://developers-apps-in-toss.toss.im/documentation/unity/build/build-process)and Sentry-related variables are [Sentry integration](https://developers-apps-in-toss.toss.im/documentation/unity/add-features/sentry-integration)in.

### Build log

The profile applied when the build starts is printed to the Unity Console. What values actually took effect can be confirmed from this log — environment variable overrides are also reflected here.

```
[AIT] ========================================
[AIT] Build profile: Dev Server
[AIT] ========================================
[AIT]   Debug console: Enabled
[AIT]   Development Build: Enabled
[AIT]   LZ4 compression: Enabled
[AIT]   Compression format: Disabled
[AIT]   Stripping Level: Minimal
[AIT]   Debug symbols: Embedded
[AIT] ========================================
```

The compression format is printed as the value stored in the profile (`-1`if `Automatic`), and for Stripping Level, `-1`the value that will actually be applied is shown in parentheses.

### Related documents

* [Getting Started](https://developers-apps-in-toss.toss.im/documentation/unity/first-steps/getting-started) — installation and basic setup
* [the build pipeline](https://developers-apps-in-toss.toss.im/documentation/unity/build/build-process) — What actually happens after the profile is applied
* [Build customization](https://developers-apps-in-toss.toss.im/documentation/unity/build/build-customization) — Web entry point and marker area
* [API usage patterns](https://developers-apps-in-toss.toss.im/documentation/unity/first-steps/api-usage-patterns) — devtools behavior
* [Troubleshooting](https://developers-apps-in-toss.toss.im/documentation/unity/first-steps/faq) — when the build is stuck


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers-apps-in-toss.toss.im/documentation/api-and-sdk-en/unity/build/build-profiles.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
