Skip to main content
The Bundle Analysis service helps you track your app’s size over time, identify what contributes to bundle bloat, and optimize your app for faster downloads and better user experience.

Overview

Bundle Analysis provides:
  • Size tracking: Monitor download and install sizes
  • Component breakdown: See what takes up space
  • Trend analysis: Track size changes over time
  • Regression detection: Alert on unexpected size increases
  • Optimization recommendations: Suggestions to reduce size

Prerequisites

  1. Authenticate with Tuist Cloud
  2. Configure your project:
Config.swift

Uploading Bundles for Analysis

iOS Bundles (IPA)

Upload an IPA for analysis:
Tuist will:
  1. Extract the IPA contents
  2. Analyze all components (binaries, assets, resources)
  3. Calculate download and install sizes
  4. Upload analysis to cloud

macOS Bundles (.app)

Analyze macOS app bundles:

Android Bundles (APK/AAB)

Upload Android bundles:

Archives (.xcarchive)

Analyze Xcode archives:
Bundle analysis automatically happens when you upload previews with tuist share.

Bundle Components

What Gets Analyzed

The service analyzes:
  • Executables: Main binary and embedded frameworks
  • Assets: Images, icons, asset catalogs
  • Resources: Localization files, fonts, data files
  • Frameworks: Embedded frameworks and libraries
  • Debug symbols: dSYM files (if included)

Size Metrics

Two key metrics are tracked:
  1. Download size: Compressed size users download from the App Store
  2. Install size: Uncompressed size on device

Viewing Bundle Analysis

List Bundles

View all analyzed bundles:
Shows:
  • Bundle version and build number
  • Upload date
  • Download and install sizes
  • Platform and supported devices

Bundle Details

Get detailed analysis for a specific bundle:
Displays:
  • Size breakdown by component type
  • Largest files
  • Comparison with previous version
  • Optimization suggestions

Web Dashboard

Access the bundle analysis dashboard:
The dashboard provides:
  • Interactive size trend charts
  • Component breakdown visualizations
  • File-level drill-down
  • Historical comparisons

Component Breakdown

By File Type

See size distribution by file type:

By Framework

Break down by embedded frameworks:

Largest Files

Identify the biggest individual files:

Historical Tracking

Track size changes over time:

Size Budget

Set size budgets and get alerts:
Config.swift
When a build exceeds the budget:
  • CI builds fail
  • Team receives notifications
  • Analysis shows what caused the increase

Regression Detection

Automatic Alerts

Get notified when bundle size increases unexpectedly:

CI Integration

Fail CI builds on size regressions:
.github/workflows/build.yml

PR Comments

Post bundle analysis on pull requests:

Optimization Recommendations

Image Optimization

Tuist identifies opportunities to:
  • Convert images to WebP or HEIC
  • Remove unused @3x assets
  • Compress asset catalogs
  • Use lossy compression where appropriate

Asset Catalog Analysis

Suggestions for asset catalogs:

Framework Optimization

  • Identify unused frameworks to remove
  • Suggest dynamic framework candidates
  • Recommend framework thinning

Code Optimization

  • Dead code detection
  • Unused symbols
  • Duplicate symbols across frameworks

App Store Size Estimation

Universal vs App Thinning

Compare universal binary size with thinned sizes:

Per-Device Estimates

Estimate size for different devices:

Advanced Analysis

Binary Symbol Analysis

Analyze what’s in your executable:
Shows:
  • Largest symbols
  • Unused symbols (with optimization flags)
  • Swift vs Objective-C distribution
  • Standard library overhead

Localization Analysis

Break down by language:
Recommendations:
  • Remove unused localizations
  • Use on-demand resources
  • Optimize string files

On-Demand Resources

Track on-demand resource usage:

CI/CD Integration

Automated Bundle Uploads

.github/workflows/release.yml

Size Regression Check

Best Practices

Define acceptable size limits and fail CI builds that exceed them.
Always run bundle analysis before submitting to App Store.
Include bundle size changes in PR descriptions and reviews.
Run asset optimization passes quarterly to compress and remove unused assets.
Move non-essential content to on-demand resources to reduce initial download.

Troubleshooting

Analysis Fails

If bundle analysis fails:
  1. Verify the bundle is valid and builds successfully
  2. Check authentication: tuist auth whoami
  3. Ensure sufficient storage quota

Inaccurate Size Estimates

If size estimates seem wrong:
  1. Compare with actual App Store Connect sizes
  2. Verify bitcode settings (if applicable)
  3. Check app thinning configuration

Missing Components

If some components aren’t analyzed:
  1. Ensure all assets are included in the bundle
  2. Verify embedded frameworks are present
  3. Check that the archive includes all targets

Next Steps

Build Insights

View bundle size trends in the insights dashboard

Optimization Guide

Learn techniques to reduce app size