App Thinning Internals
Also known as: app thinning ios, slicing bitcode thinning, ios app thinning
App thinning is the App Store process that delivers only the resources and code a specific device needs, shrinking installed app size. It combines slicing (per-device variants), On-Demand Resources, and historically bitcode-based recompilation.
- Three mechanisms: slicing (per-device variants), On-Demand Resources, and the now-deprecated bitcode.
- Slicing trims unused image scales, architectures, and resources so each device downloads only what it needs.
- Installed size in iPhone Storage reflects the thinned variant, usually smaller than the universal upload.
Slicing, ODR, and bitcode
App thinning has three parts. Slicing is the main one: from a single uploaded .xcarchive, the App Store builds device-specific app variants that include only the image scales (@2x/@3x), architectures, Metal shaders, and asset-catalog resources that a given iPhone or iPad model can use. A device downloads just its slice rather than the universal bundle.
On-Demand Resources is the second part, deferring tagged content to post-install downloads. Bitcode was the third: an intermediate representation that let Apple recompile binaries server-side, but Apple deprecated bitcode and removed the requirement, so modern thinning relies on slicing plus ODR.
Why installed size differs from the download
Because of slicing, the size shown in Settings > General > iPhone Storage is the thinned, device-specific footprint — typically smaller than the full universal binary a developer uploads. Asset catalogs are key: putting images in an Asset Catalog (.xcassets) lets the App Store strip unused scales per device.
App thinning reduces what lands on storage in the first place, which complements user-facing cleanup. After install, the remaining levers are offloading unused apps, clearing caches, and letting the OS reclaim purgeable ODR content.