Error: Your iOS app icon is missing or is an invalid format.

Hi All

I have been getting an error for about 3 days.

Your iOS app icon is missing or is an invalid format. The icon must be a 1024x1024 PNG image with no transparency.
Check your icon image and icon configuration in app.json.
Learn more: https://docs.expo.dev/guides/app-icons/

I have used the Figma template

I have used the https://buildicon.netlify.app

Both of those tool result in:

./assets/icon.png:          PNG image data, 1024 x 1024, 8-bit/color RGBA, non-interlaced

So I use

mogrify -alpha off ./assets/icon.png

Resulting in:

./assets/icon.png:          PNG image data, 1024 x 1024, 8-bit colormap, non-interlaced

When I run my build locally, I notice this message:

[PREBUILD] » ios: icon: This is the image that your app uses on your home screen, you will need to configure it manually.

share the exact image you are using

Hi @dalehurley

How are you building locally? With npx expo run or with eas build --local?

If you’re using npx expo run (and therefore prebuild) you might need to regenerate the native projects with npx expo prebuild --clean if you subsequently changed the icon location or something like that in app.json.

Hi Brents

Icon after alpha channel removed

Hi Wodin

Thank you.

I am running low on remaining builds because the error keeps occurring which is why I am using local. The issue also occurs when using the remote eas.

I tried expo prebuild --clean to no luck.

D

Sure, but you didn’t answer my question :slight_smile:

I think you’re using eas build --local rather than npx expo run:ios, right?

Had you previously run npx expo prebuild or npx expo run:ios? Do you need the native projects? If not, try deleting android and ios directories and see if eas build -p ios --local works.

See expo.fyi/prebuild-cleanup for some more info on cleaning up after prebuild.

Thank you,

I have been running eas build --platform ios --local

I do not see any android or ios directories.

OK, that’s weird. If you run npx expo prebuild it will generate those. But if you do not need the native projects, then don’t do that :slight_smile:

Are you able to put a minimal project on GitHub that reproduces this problem?

Awesome idea, I made a mini app with the image files, they work without issue.

I am going to slowly work through the code to copy the existing project to the new project to work out what was causing the issue.

I will keep you posted.

Thank you for all your help.

1 Like

I am so silly.

I created a app.config.js instead of renaming app.json to app.config.js

As such I didn’t have all of the settings in app.config.js

Thank you for all your help and support!

1 Like

Glad you figured it out :slight_smile:

You can actually have both. In the past I’ve done this to build different variants of an app. I kept all the common config in app.json and just the variable bits in app.config.js.

Dynamic config

But nothing wrong with just putting everything in app.config.js either.