Loose Image Files

iOS

Images outside Asset Catalogs that miss app thinning. All scale variants (@1x/@2x/@3x) ship to every device instead of just the one it needs.

Images stored as individual files in the app bundle outside of Asset Catalogs, missing critical optimization opportunities. Two patterns are detected: retina variants (@1x, @2x, @3x of the same image that could be auto-generated from a single source) and multi-location duplicates (the same image at different sizes in different directories).


Why this happens

  • Legacy code. Images added before Asset Catalogs were available or widely adopted.

  • Third-party SDKs that bundle their own loose image resources.

  • Developer workflow. Some teams add images directly to the project rather than through Asset Catalogs.

  • Migration debt. Moving existing loose images to Asset Catalogs requires manual effort.


Size impact

Loose images miss out on app thinning/slicing (Asset Catalogs deliver only the device-appropriate scale), automatic compression (HEIF conversion, Apple Deep Pixel, image packing), and OS variant thinning.

App thinning waste

33-66% of image data per user (all variants delivered)

Wells Fargo

26.7 MB (~12%) potential savings

General Motors

40+ MB per app potential savings

@1x variants

No longer needed (last @1x devices: iPad 2, iPod touch 4th gen)


How we detect it

Performs a two-pass scan: finds all .xcassets catalogs, then finds all loose images (PNG, JPG, JPEG, GIF, WebP) outside asset catalogs and Assets.car. Groups by base name (removing @1x/@2x/@3x suffixes) and detects retina-variant and multi-location patterns. Savings calculated using disk usage (4 KB block alignment). Only patterns with 2+ images are reported.


How to fix

1

Move images into Asset Catalogs

This single action enables app thinning, automatic compression, and image packing.

2

Drop @1x variants

Provide only @2x and @3x for modern apps. All currently supported iOS devices use @2x or @3x displays.

3

Use PDF/SVG vectors for icons

For icons and simple illustrations, a single vector asset replaces all scale variants. Xcode rasterizes at build time.

4

Set color gamut explicitly

Set to sRGB (not "Any") to avoid generating duplicate P3 variants.


Powered by Bitrise, trusted by 8,500+ brands

Size Analyzer is built by Bitrise, the leading mobile DevOps platform used by over 400,000 developers at companies like Shopify, TripAdvisor, and BuzzFeed. Free forever. No signup required.

Bitrise provides a full-stack mobile DevOps solution that unites the tools, processes, and testing frameworks engineering teams need to ship best-in-class mobile experiences.

Bitrise logo