Skip to main content

App Store Connect

How to fix "Images can't include alpha channels or transparencies" in App Store Connect

Verified against Apple, App Store Connect Help on

The error

Images can't include alpha channels or transparencies.

How to fix it

  1. Check whether the file actually has an alpha channel

    Confirm before you change anything, because the same upload error text covers both an alpha channel and real transparency.

    magick identify -format "%[channels]\n" screenshot.png
    

    srgb is clean. srgba carries the channel Apple names. On macOS with no ImageMagick installed:

    sips -g hasAlpha screenshot.png
    
  2. Strip the channel, or re-encode as JPEG

    JPEG has no alpha channel in the format at all, which is why it is the simpler answer when the screenshot has no transparency to preserve:

    # macOS, no install needed
    sips -s format jpeg screenshot.png --out screenshot.jpg
    
    # ImageMagick, keeps PNG, composites onto white and drops the channel
    magick screenshot.png -background white -alpha remove -alpha off screenshot-flat.png
    

    The -background white matters. Removing the channel without compositing first can reveal whatever was under the transparent pixels rather than the white you expected.

  3. Do not rename the extension

    Changing screenshot.png to screenshot.jpg in Finder renames the file and leaves the PNG bytes untouched, alpha channel included. App Store Connect reads the bytes, not the name, so the upload fails again with a different message about the format.

    That sequence is common enough that it has its own page: the images are not in the right format.

  4. Verify the channel is gone

    Re-run the check across the whole set rather than the one file you fixed.

    for f in *.png *.jpg; do
      printf "%s " "$f"
      magick identify -format "%[channels]\n" "$f"
    done
    

    Every line should read srgb. Any srgba will be refused again.

Why this happens

Apple names alpha channels and transparencies as two separate things in the same sentence, so a file can satisfy the second and still fail on the first.

The reason this is confusing in practice is that the alpha channel is a property of the encoding. A PNG written as RGBA stores a fourth value for every pixel even when all of those values are fully opaque. Nothing looks see-through, the image is visually correct, and the file still contains the channel.

Design tools and canvas-based exporters produce this by default. An HTML canvas is RGBA, so anything serialised from one with toDataURL('image/png') carries the channel whether or not a background was painted across it first.

If you downloaded your set from the AppScreenshotStudio builder, the browser export writes flattened JPEG, so this error does not apply to those files. Files pulled from any PNG-producing pipeline, including our render API, are worth checking with the command above.

Sources

Go deeper

The rule behind it

Related guides