Skip to main content

iOS App Size Calculator: Estimate IPA & Download Size

Estimate your iOS app's download and install size, understand what drives app size, and apply App Thinning and asset optimization to stay under App Store cellular limits.

✓ Size factor breakdown ✓ App Thinning guide ✓ On-Demand Resources ✓ Size reduction techniques

App Store Size Limits

Limit Type Size Notes
Cellular download limit 200 MB User can override in iOS Settings
Total app bundle 4 GB Including all on-demand resources
On-demand resources per tag 512 MB Hosted by Apple CDN
Recommended download size <50 MB Best conversion rates on App Store listings

What Drives iOS App Size

Understanding the composition of your IPA helps target the right optimizations. Unzip your .ipa to inspect its contents:

# Unzip and inspect your IPA
cp MyApp.ipa MyApp.zip && unzip MyApp.zip -d MyApp_Contents

# Typical IPA structure:
# Payload/MyApp.app/
#   MyApp              — compiled binary (often the largest single file)
#   Assets.car         — compiled asset catalog (images, colors)
#   Frameworks/        — embedded frameworks (React Native, Hermes, etc.)
#   _CodeSignature/    — code signing data
#   Base.lproj/        — localization strings

# Check sizes of each component
du -sh MyApp_Contents/Payload/MyApp.app/*
du -sh MyApp_Contents/Payload/MyApp.app/Frameworks/*

In a typical React Native app, size is distributed roughly as follows:

Component Typical Size Reduction Strategy
React Native framework 8–15 MB Enable New Architecture (smaller)
Hermes engine 3–6 MB Already smallest JS engine option
JavaScript bundle 1–10 MB Tree shaking, dynamic imports, remove unused deps
Images and assets 5–50 MB+ WebP format, asset catalogs, ODR
Native dependencies 2–20 MB Audit and remove unused native modules

App Thinning Techniques

App Thinning is automatic when you distribute through the App Store, but you can maximize its effectiveness:

# 1. Use Asset Catalogs for all images
# Xcode compiles .xcassets into Assets.car and generates
# device-specific slices automatically

# 2. Provide 1x, 2x, 3x variants — App Thinning delivers only what's needed
# (iPhone 15 Pro = 3x only, older devices = 2x)

# 3. Convert images to WebP for significant compression
# Use cwebp tool:
brew install webp
cwebp -q 80 input.png -o output.webp
# WebP is 25-35% smaller than PNG at same quality

# 4. Enable vector assets to avoid multiple raster sizes
# In Asset Catalog: Scales = Single Scale, Render As = Template Image

On-Demand Resources (ODR)

On-Demand Resources let you host large assets on Apple's servers and download them only when needed. Ideal for tutorial content, seasonal themes, or level packs:

// Request an on-demand resource tag in Swift
import Foundation

let resourceRequest = NSBundleResourceRequest(tags: ["level-2-assets"])
resourceRequest.beginAccessingResources { error in
    if let error = error {
        print("Failed to load resources: \(error)")
        return
    }
    // Assets are now available in the app bundle
    let imageURL = Bundle.main.url(forResource: "level2-background",
                                   withExtension: "jpg")
}

// Release resources when done to free device storage
resourceRequest.endAccessingResources()

Generate an App Size Report

Xcode can generate a detailed size report before you submit to the App Store:

# Archive and export with size report
# In Xcode: Product > Archive
# In Organizer: Select archive > Distribute App
# Choose: Development > Next > Check "Include app size report"
# The exported folder contains AppThinning.plist and a size report

# Or use xcodebuild for CI:
xcodebuild archive \
  -workspace MyApp.xcworkspace \
  -scheme MyApp \
  -archivePath build/MyApp.xcarchive

xcodebuild -exportArchive \
  -archivePath build/MyApp.xcarchive \
  -exportOptionsPlist ExportOptions.plist \
  -exportPath build/export/

Frequently Asked Questions

What is the App Store size limit for iOS apps?▼

Apps downloaded over cellular are limited to 200MB (raised from 100MB in iOS 13). There is no hard limit for downloads over Wi-Fi, but Apple recommends keeping apps under 4GB total. The install size (on-device) can be larger than the download size because the IPA contains compressed assets that expand during installation.

What is the difference between download size and install size?▼

Download size (IPA size) is the compressed bundle transferred from the App Store. Install size is what the app occupies on device after decompression and installation. Install size is typically 2–3x larger than the download size. App Store Connect shows both metrics for each build you submit.

What is App Thinning?▼

App Thinning is Apple's process of delivering only the code and resources a specific device needs. It has three components: slicing (device-specific binary variants), bitcode (recompilation by Apple for each chip architecture), and on-demand resources (assets downloaded at runtime). Together, they can reduce delivered app size by 30–60% for asset-heavy apps.

How do I check my app's size before submitting to the App Store?▼

Archive your app in Xcode (Product > Archive), then in the Organizer window click 'Distribute App' and choose 'Development' distribution. In the export options, check 'Include app size report'. Xcode generates a detailed breakdown by framework, asset catalog, and binary segment. Alternatively, examine the .ipa file directly — it's a ZIP archive you can unzip and inspect.

What is On-Demand Resources (ODR) in iOS?▼

On-Demand Resources let you tag assets (levels, additional content, large media) that are not included in the initial download but are fetched from Apple's servers when needed at runtime. This dramatically reduces initial download size for content-heavy apps like games. The OS caches downloaded resources and purges them if storage is needed.

Should I use bitcode for my iOS app?▼

Apple deprecated bitcode for iOS in Xcode 14 (2022). Apps built with Xcode 14+ no longer include bitcode by default, and the App Store no longer processes it. If you're on a newer Xcode version, bitcode is not relevant to your size optimization strategy. The benefits bitcode provided (Apple recompiling for new chips) are now handled differently.

Share this tool: X / Twitter LinkedIn
✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

Related Products

on Gumroad

You Might Also Need

More Free Tools

Enjoying this tool? Get more like it.

Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

DevPlaybook Pro 7 days free

Unlock AI-Powered Dev Tools

  • ⚡ AI Code Review, Doc Generator & SQL Builder
  • ⚡ All premium templates & early access
  • ⚡ Member discounts on Gumroad products
Start Free Trial →

$9/mo after trial · Cancel anytime

Want the full toolkit?

Get DevPlaybook Pro

Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

$79
$241 separately Save $162 (67% off)
Get DevPlaybook Pro — $79 →

MIT licensed · Instant download · No subscription

See what's included → Browse all deals →