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.