Changing icon for iOS build

I have a react native app managed by expo that is already published to the App Store. I want to change the icon, and have updated the icon file, but it never changes in App Store Connect. Does anyone know how to update it?

If you have uploaded the new app version with the new icon to TestFlight, you should be able to see the new app icon in the build list. As soon as you create a new release on Connect, and point to the new build, the app icon displayed on that screen should also be updated. When that release goes live, the icon in your app listing on Connect will also update.

1 Like

When I submit the build, I only see the old icon on Testflight. When I do expo publish, I can see the new icon and everything in the Expo Go app (when I see my listed apps), but it just doesn’t seem to update on App Store Connect. For the new version I have it updated in app.json and Info.plist

Hi @sreyahalder

If you have an ios directory (which you must have in order to have an Info.plist) your app is not managed.

I suspect you ran expo run:ios at some point. As a side effect, this generates the native code (ios and android directories). If you do not need to make any changes to the native files (e.g. to write your own code in Swift/Objective C/Java/Kotlin etc.) then you have a couple of options:

  • Run expo prebuild or expo prebuild --clean to regenerate the native code; or
  • Delete the ios and android directories which will basically switch you back to the managed workflow

Because the Expo team has been working hard to make Expo work well for plain React Native apps and make it possible to use custom native code in managed Expo apps (using Config Plugins), the lines between managed and bare have been blurred. I personally avoid expo run because it has the side effect of generating native code. I do use expo prebuild to explicitly generate the native code if I am developing a config plugin, but then I get rid of the native code when I’ve finished debugging the config plugin and I don’t commit the native code to Git.

It seems that the Expo team envisions a future where the ios and android directories are like node_modules, which you should avoid modifying. You can still do it when you need to for some reason, but most people will not. If you need to regenerate node_modules you can delete it and rerun yarn or npm_install. If you need to regenerate your ios/android directories you can run expo prebuild --clean.

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.