EAS Submit reads too much information from local project folder expo config file
- Dominant language
- TypeScript
- Stars
- 1.4k
- Forks
- 236
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 91
Description
### Build/Submit details page URL
https://expo.dev/accounts/avensia/projects/ignite/builds/c77839ea-4564-48de-8989-4ce58c68e5fd
### Summary
Bundle Identifier is read from local Expo Config file instead of the build you selected to submit. This causes unexpected behaviors when submitting iOS builds, as the selected build could have a different bundle ID from the one `expo config` will spit out locally, especially in mono-repos or when you're working with multiple bundle IDs within the same repository.
> The command will look for `ios.bundleIdentifier` in the app config.
I would expect that if I selected a build with `com.myapp.preview` as **built** identifier, that's the identifier EAS Submit would use to configure Apple stuff! At least when I select the option to use a build from EAS build.
Perhaps for the options
```
Provide a URL to the app archive
Provide a path to a local app binary file
```
the guide should prompt/confirm which ios bundle ID it would use?
Or maybe just always confirm the bundle-id, to make it simpler 🤷
Existing workarounds:
* Configure the build profile with the correct bundle id for iOS. https://docs.expo.dev/eas/json/#bundleidentifier
* Seems to be a `EAS_DANGEROUS_OVERRIDE_IOS_BUNDLE_IDENTIFIER` env var you can set as well (haven't tested)
(This feels like a bug to me, even with documented workarounds. It feels too secret that it would use another bundle ID than the one it was built with. That's why I didn't add it as a feature request)
### Managed or bare?
Managed
### Environment
expo-env-info 1.2.2 environment info:
System:
OS: Windows 11 10.0.26100
Binaries:
Node: 23.6.0 - C:\Projects\ignite\node.CMD
Yarn: 4.5.3 - C:\Projects\ignite\yarn.CMD
npm: 10.9.2 - C:\Projects\ignite\tools\node-v23.6.0-win-x64\npm.CMD
IDEs:
Android Studio: AI-242.23726.103.2422.12816248
npmPackages:
expo: ~52.0.20 => 52.0.21
expo-router: ~4.0.14 => 4.0.14
react: 18.3.1 => 18.3.1
react-dom: 18.3.1 => 18.3.1
react-native: 0.76.5 => 0.76.5
react-native-web: ~0.19.13 => 0.19.13
Expo Workflow: managed
### Error output
_No response_
### Reproducible demo or steps to reproduce from a blank project
1. Create a blank projects
2. Set `ios.bundleIdentifier` in **app.config.js** to
```bundleIdentifier: process.env.IOS_BUNDLE_ID ?? 'com.myapp.production',```
3. Add project environment variable `IOS_BUNDLE_ID` on Expo website for your project, set it to `com.myapp.preview`
4. Build a submittable build using EAS Build
* Verify the **Read app config** step outputs `bundleIdentifier": "com.myapp.preview"` in the ios section
6. Run `eas submit` locally and select the build you created in EAS
**Expected either:**
* Prompt asking which bundle ID for iOS stuff I should use
* The Bundle ID is `com.myapp.preview`, as per the `bundleIdentifier` in the built config
**Actual:**
Bundle ID `com.myapp.production` will be used by eas submit
Contributor guide
Assessment
This issue has not been assessed yet.