Quick answer: Unity DOTS-based mobile build producing huge APKs / IPAs? Burst AOT may be including every CPU target; reduce to the platforms you ship.

An ECS-heavy mobile game ships at 250MB despite minimal assets. Burst is producing AOT code for every variant.

Trim Burst AOT

Project Settings → Burst AOT Settings. Disable platforms you don’t ship. iOS only needs ARM64; Android only needs ARM64 (and maybe x86 for emulators).

Native Compilation Level

Burst CPU baseline: target the lowest CPU you support, not the “everything” default. Modern mobile = ARMv8 with NEON.

Code Stripping

Managed code stripping at High eliminates unused .NET surface. Combined with Burst AOT trim, significant size drops.

LZ4 Compression

Asset compression to LZ4 / LZMA. Burst code isn’t the only contributor; assets often dominate.

Verifying

APK / IPA size drops without losing functionality. Per-platform builds size-appropriate for the target store rules.

“Trim Burst AOT to your shipped CPUs. Combine with code stripping.”

Set up CI to flag size regressions — a 20MB jump on a build is the first sign someone enabled an extra Burst target.