My issue is that the applicationId/bundle identifier is not matching what I usually use. I have a numerical character in the title of my app (where I’m assuming it’s pulling the name from), so it’s building with a numerical character in the Android build, which results in it failing. iOS builds successfully but as you’d expect, it does not match the identifier that I used initially, so I’m unable to upload.
I’d like to know the new way to manually specify an applicationId/bundle identifier. I do still have them set in the app.config.js, but it doesn’t appear to be pointed towards that anymore.
I’m in a managed workflow and my eas-cli version is 2.1.0. So far, I have attempted to go into the build files (project.pbxproj and build.gradle) and manually changed the PRODUCT_BUNDLE_IDENTIFIER & applicationId, no luck.
can you share more information about your project? your app name should have no impact on bundle identifier or application id. my guess is that you have some environment variables set locally that you didn’t configure for eas build
The iOS does build successfully, but it throws the error when uploading through transporter:
Verify your bundle identifier ‘org.name.(myapp)’ is correct…’
With myapp being the name of my app.
Could you point me in the direction to change these environmental variables for EAS? I’ve looked through all of the configuration files and the only single string I have that has my app name alone is in app.config.js under the “name” property.
I would also like to note that I’m pretty sure this started to mess up on a recent EAS-CLI update, not for sure on that though.
Let me know what other information you need, if you need any.
These two statements contradict each other. In a managed project there is no project.pbxproj or build.gradle.
Perhaps you ran npx expo prebuild or npx expo run:android/npx expo run:ios at some point? If so, that would have generated the native projects, effectively switching you to the bare workflow. At this point, most changes in app.config.js would not have any effect.
Have a look at this old post of mine which might help:
I have been running expo prebuild for a few months now with no issues, really odd. I did recently do expo prebuild again so I suppose that could’ve been when things messed up.
I did know about the bare workflow option but didn’t think I was on it because I never ran expo eject, but I have definitely ran the expo prebuild command. I also never follow the bare workflow steps for packages that require the bare workflow, I just install the package, expo prebuild, and it works. I could very well be misunderstanding so I will read that forum post.
Can you guide me / link another post on how to change the applicationId/Bundle Identifier in a bare workflow?
expo eject is no more and was replaced by expo prebuild, although they’re not quite the same. After expo eject you were on your own, while you can of course run expo prebuild multiple times.
Managed vs. bare is kind of a scale these days instead of binary.
OK, that should normally be OK, but maybe try running npx expo prebuild --clean, especially if you made some manual modifications to the native projects when you were trying to fix things and you want to start from a clean slate again.
If it’s correct in app.config.js and you run npx expo prebuild --clean, then it should regenerate the native projects with the correct android.package / ios.bundleIdentifier.
From a quick search it seems that if one of your dependencies uses the IStar attribute, you need to target Android SDK 31 (or downgrade the dependency to a version that does not use that attribute).
It looks like you might be on an Expo SDK version less than 46. e.g. Expo SDK 45 targets Android SDK 31 by default).
Maybe run expo-cli doctor to see if any of the Expo packages are on versions that are incompatible with your Expo SDK version and if that doesn’t fix it, check your other dependencies or upgrade to Expo SDK 46.