iOS app icon is missing

Hi, when I build my ios app using the eas cli (eas-cli/0.17.0 win32-x64 node-v14.16.0) everything goes right.
but when I try to submit with latest EAS build url, I always get the following error message:

:heavy_multiplication_x: Something went wrong when submitting your app to Apple App Store.
Your iOS app icon is missing or is an invalid format. The icon must be a 1024x1024 PNG image with no transparency.
Please check your icon image and icon configuration in app.json.

So what am I doing wrong? Thanks in advance for your reply.
François

Note: icon is present, at the right size and app.json seems complete.

Hi! Can you share the icon file? It might have transparency in it in which case this would fail

Hi!
here we go :slight_smile:

That image file looks fine to me- can you share a link to the Build URL of the build you’re submitting?

Also getting the same issue. Trying out Expo for the first time attempting to build my app for draft release.

Below is my app.json file. Icon is 1024px by 1024px with no transparency.

{
  "name": "xxx",
  "displayName": "xxx",
  "expo": {
    "owner": "onetwoeightbits",
    "name": "xxx",
    "slug": "xxx",
    "version": "0.0.1",
    "assetBundlePatterns": ["**/*"],
    "ios": {
      "bundleIdentifier": "com.onetwoeightbits.xxx",
      "buildNumber": "1"
    },
    "android": {
      "package": "com.onetwoeightbits.xxx",
      "versionCode": 1
    },
    "icon": "./assets/icons/app-icon.png"
  }
}

I also tried deploying using Apple transporter and get the following errors.

ERROR ITMS-90022: "Missing required icon file. The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 10.0. To support older versions of iOS, the icon may be required in the bundle outside of an asset catalog. Make sure the Info.plist file includes appropriate entries referencing the file. See https://developer.apple.com/documentation/bundleresources/information_property_list/user_interface"

ERROR ITMS-90704: "Missing App Icon. An app icon measuring 1024 by 1024 pixels in PNG format must be included in the Asset Catalog of apps built for iOS, iPadOS, or watchOS. Without this icon, apps cannot be submitted for review. For details, see https://developer.apple.com/ios/human-interface-guidelines/icons-and-images/app-icon/."

ERROR ITMS-90713: "Missing Info.plist value. A value for the Info.plist key 'CFBundleIconName' is missing in the bundle 'com.onetwoeightbits.xxx'. Apps built with iOS 11 or later SDK must supply app icons in an asset catalog and must also provide a value for this Info.plist key. For more information see http://help.apple.com/xcode/mac/current/#/dev10510b1f7."

Again- please provide the build URL for the ipa you’re submitting

Yeah sure. It’s e5d4023d-a6ad-479a-ba8d-954959c9549a

What version of eas-cli are you using @bradio?

This is shown after typing eas --version

eas-cli/0.17.0 darwin-x64 node-v14.16.1

@bradio it looks like your project is a bare workflow project, is that correct? For bare workflow projects, you either need to configure the icon in Xcode, or add the icon to your app.json and then run expo prebuild (you should do this from a clean git state so that it’s easy to look at exactly what changed and also easy to revert it)

1 Like

@charliecruzan thanks for your help, I didn’t realise I needed to run that and I’m still getting familiar with the different options available to me, that command built all the artefacts in ios and android so hopefully the next build/submission will work now. thank you.

edit: I just noticed by workflow is generic and not bare? or are these the same things?

{
  "builds": {
    "android": {
      "release": {
        "workflow": "generic"
      }
    },
    "ios": {
      "release": {
        "workflow": "generic"
      }
    }
  }
}
1 Like

it’s called “generic” there because eas build works with any native project and treats a “bare expo project” the same as any generic native project. but yes that means your project is bare.

1 Like

Ok I think I got the same error. I will try expo prebuild to check.

Hi, doing a prebuild did not do anything for me

Here’s my build#: c2ec6138-cc6c-4968-bff3-5f601674fed6

the icon is inside app.json in ios section and parent section as well

"ios": {
      "icon": "./assets/app-icon-1024-bg.png",
      "bundleIdentifier": "xxx"
    },
    "icon": "./assets/app-icon-1024-bg.png",

Expo SDK: 41.0.0
eas-cli/0.17.0 win32-x64 node-v14.16.0

Thanks!
What can I do?

@thewhitetigle you’re building with expo build, not eas build, so is your project a managed project (meaning you do not have ios/ or android/ directories)?

1 Like

Sorry I fail to grasp the build/submit process.
So can you confim the step, please:

  • expo for local testing

then

  • eas build
  • eas submit

is that it?
Thanks :slight_smile:

note:

using eas build + submit always lead to

  • on android flow leads to versionCode set to 1 and invalid package name
  • on ios: missing icon

What would be a “valid” eas.json config?

So there’s something I don’t quite grasp here. Sorry

@thewhitetigle can you link me the docs you are reading and following?

You’re saying you’re using eas build, but according to your build logs, you are using the classic expo build commands

Oh if you look at all the build history you’ll see both EAS and expo builds.
We reverted to expo builds to be able to upload working binaries to the stores.

The docs are there: Creating your first build - Expo Documentation
But I think my mistake was that I failed to grasp the fact that an expo projet is not an eas project.

So I think I will follow these instruction. Is that correct? Thanks.