You may see one of these after archiving in Xcode and uploading, or when submitting with Transporter or altool:
ERROR ITMS-90717: "Invalid App Store Icon. The App Store Icon in the asset catalog in 'YourApp.app' can't be transparent nor contain an alpha channel."Asset validation failed (90717) Invalid large app icon. The large app icon in the asset catalog in "YourApp.app" can't be transparent or contain an alpha channel.Both messages point to the same problem. Your 1024×1024 marketing icon (the App Store icon, or "large app icon") has a transparency channel. The image can look completely opaque, corners included, and still fail. Validation rejects any PNG that contains an alpha channel.
This guide only covers fixing the error. For mask shapes and export rules, see the iOS app icon corner radius guide.
| Source | Typical case |
|---|---|
| Design tool defaults | Figma, Sketch and Photoshop keep transparency when exporting PNG |
| Pre-rounded artwork | The designer exported rounded corners with transparent edges |
| Icon generators | Cross-platform tools build every size from a transparent source image |
| Post-processing | A compression tool converted RGB to RGBA |
In Terminal, go to your icon folder (usually Assets.xcassets/AppIcon.appiconset/) and run:
sips -g pixelWidth -g pixelHeight -g hasAlpha *.png
Any file that reports hasAlpha: yes is a culprit. With ImageMagick installed, you can also run:
magick identify -format "%f %wx%h %[channels]\n" *.png
A channel description with an a in it, such as srgba, means the file has alpha.
| Method | How | Best for |
|---|---|---|
| macOS Preview | Open the icon → File → Export → uncheck "Alpha" → Save | One file, fastest |
| ImageMagick | magick icon.png -background white -alpha remove -alpha off icon.png | Batch fixes |
| Python Pillow | Image.open("icon.png").convert("RGB").save("icon.png") | Scripted pipelines |
| Re-export from design | Add a full-bleed opaque background, then export without transparency | Fixing the source |
Watch out for these:
-background to your icon's actual base color. Otherwise, areas that used to be transparent become white or black fringes. Better still, fill the background in the design file so there's nothing to patch later.| Framework | Fix |
|---|---|
| Flutter (flutter_launcher_icons) | Set remove_alpha_ios: true and regenerate the icons |
| Expo / React Native | Use an opaque source for icon in app.json, then prebuild or rebuild |
| Ionic / Capacitor | Regenerate assets from an opaque source, or batch-strip alpha in AppIcon.appiconset |
| Unity | Use an opaque icon in Player Settings and make sure import settings don't keep alpha |
After fixing, archive again. Your old archive still contains the old icon.
Since iOS 18, apps can ship dark and tinted icon appearances. Apple says to provide the dark icon with a transparent background so the system background shows through. That gives you these rules:
If 90717 started after you added a dark icon, check the default and tinted files for alpha first. Don't strip transparency from the dark variant. If you use Xcode 26 Icon Composer layered icons, individual layers can be transparent and the tool composites them. See the Liquid Glass icon tutorial.
| Error | Meaning | Fix |
|---|---|---|
| ITMS-90717 | Marketing icon is transparent or has alpha | Strip alpha as above |
| ITMS-90704 Missing Marketing Icon | No 1024×1024 PNG icon | Add the 1024 image to AppIcon |
| Wrong icon dimensions | A slot holds an image at the wrong pixel size | Re-export for the slot, or switch to Xcode's single-size mode |
Since Xcode 14, AppIcon can take a single 1024×1024 image and Xcode generates the other sizes. That removes the "one small size still has alpha" failure.
The Simulator and on-device debug builds never check the marketing icon for alpha, and the home screen icon looks fine. So the problem usually doesn't show up until your first TestFlight upload or App Review submission. A few details people miss:
Once it's fixed, automate the check so the next icon refresh from your designer doesn't break the upload again:
| Practice | How |
|---|---|
| Pre-commit script | Run sips -g hasAlpha on AppIcon.appiconset in a Git pre-commit hook or build script, and stop if any file reports yes |
| CI check | Add the same check to CI and fail the build when it trips |
| Design handoff spec | Agree with your designer that the App Store icon is delivered "1024×1024, opaque, square, full-bleed" |
| Single source | Keep one 1024 source image and let Xcode or a script generate any other sizes |
ITMS-90717 has one root cause: the default marketing icon contains an alpha channel. Find the file with sips, strip the alpha with Preview, ImageMagick or your framework's setting, fill the background in the source design, and archive again.