I have an existing react-native app that was not using Expo. I tried to upgrade it and ran into so many errors that I created a new Expo app and moved the old code into the new app. Now I’m trying to upload it to the Play store and I get the error:
You uploaded an APK that is not signed with the upload certificate. You must use the same certificate. The upload certificate has fingerprint:
[ SHA1:XXX ]
and the certificate used to sign the APK you uploaded have fingerprint:
[ SHA1: YYY ]
I’ve ran expo fetch:android:keystore and used that for the credentials. I’ve copied over things from the old app.json into the new one. They don’t quite line up so I used:
displayName → expo.name
name → expo.slug
I’ve copied over the same identifiers for expo.ios.bundleIdentifier and expo.android.package.
I’ve tried to make the slug the bundle identifier, but that throws errors.
I think you have to upload the same keystore that is already upload in playStore.
I have a question when run this fetch:android:keystore command then the result was match with already uploaded keystore or not?
Yes, that seems like the problem from the error. However, I’ve already run that command (like 5 times) to fetch the keystore. I add the path, alias and password as it asks. But it still gives this error. That is why I was trying to match up other values in app.json to see if there was something else off. I read in other forum posts that this might be the case, that the keystore matches, but something else has changed.
I just realized that expo fetch:android:keystore fetches the keystore from expo, not the Play Store. Which seems very obvious now. Luckily I had the keystore saved and dug it up and used it. And that build was successful. Phew!