Skip to content

EAS Submit (Android): fastlane supply uses iOS bundle identifier as package_name; AAB manifest has correct android.package #3563

@allaboutparenting

Description

@allaboutparenting

Build/Submit details page URL

https://expo.dev/accounts/allaboutparenting/projects/parenting-chat/builds/f513f45a-bb3e-41ce-ba68-fec36b66d2ad

Summary

Summary

EAS Submit’s Android job calls Google Play with the wrong package name. fastlane supply’s summary shows package_name = com.allaboutparenting.parentingchat (our iOS bundleIdentifier), while the submitted .aab’s AndroidManifest.xml has package="com.allaboutparenting.nia" (our expo.android.package). Google returns “Package not found” for the iOS id; the binary is correct.

Environment

  • Project: @allaboutparenting/parenting-chat (EAS project id: 212939ef-5fc6-4582-850e-32af8f108704)
  • eas-cli: (version from npx eas submit output, e.g. 18.x)
  • Expo SDK: ~54
  • app.json / app.config.js: android.package = com.allaboutparenting.nia; ios.bundleIdentifier = com.allaboutparenting.parentingchat

Steps to reproduce

  1. eas build --platform android --profile production (successful build).
  2. eas submit --platform android --profile production, select that build.
  3. Submission fails; open Expo submission logs.

Actual behavior

  • fastlane supply summary includes: package_name | com.allaboutparenting.parentingchat
  • Google API error: Package not found: com.allaboutparenting.parentingchat

Expected behavior

  • package_name passed to supply should match the application id in the submitted artifact, i.e. com.allaboutparenting.nia (or be derived from android.package / manifest), not ios.bundleIdentifier.

Proof the artifact is correct

  • Downloaded the .aab from the EAS build page, inspected AndroidManifest.xml: package="com.allaboutparenting.nia".

So the failure is not from a wrong Android build; EAS Submit appears to attach the wrong package name for the Play API call.

Example build / submission IDs (replace with yours)

  • Build ID: f513f45a-bb3e-41ce-ba68-fec36b66d2ad
  • Submission ID: (from expo.dev submission URL)

Workaround

  • Manual upload of the same .aab to Play Console Internal testing succeeds.

Please investigate why EAS Submit resolves package_name to the iOS bundle id for Android submissions.

Managed or bare?

managed

Environment

expo-env-info 2.0.11 environment info:
System:
OS: Windows 11 10.0.26200
Binaries:
Node: 22.13.1 - C:\nvm4w\nodejs\node.EXE
npm: 10.9.2 - C:\nvm4w\nodejs\npm.CMD
IDEs:
Android Studio: AI-253.30387.90.2532.14935130
npmPackages:
expo: ~54.0.33 => 54.0.33
expo-updates: ~29.0.16 => 29.0.16
react: 19.1.0 => 19.1.0
react-native: 0.81.5 => 0.81.5
Expo Workflow: bare

env: load .env.local .env
env: export EXPO_PUBLIC_API_URL EXPO_PUBLIC_MIXPANEL_TOKEN EXPO_PUBLIC_SENTRY_DSN EXPO_PUBLIC_SUPABASE_ANON_KEY EXPO_PUBLIC_SUPABASE_URL SENTRY_AUTH_TOKEN
14/17 checks passed. 3 checks failed. Possible issues detected:
Use the --verbose flag to see more details about passed checks.

✖ Check Expo config (app.json/ app.config.js) schema
Error validating fields in C:_code\parenting-chat-clean\mobile\app.json:
Field: android - should NOT have additional property 'usesCleartextTraffic'.
Advice:
Resolve schema errors in your app config. Learn more: https://docs.expo.dev/workflow/configuration/

✖ Check Expo config for common issues
You have an app.json file in your project, but your app.config.js is not using the values from it.
Advice:
Remove the static app.json, or use its values in your dynamic app.config.js. Learn more: https://docs.expo.dev/workflow/configuration

✖ Check for legacy global CLI installed locally
EAS CLI should not be installed in your project. Instead, install it globally or use "npx", "pnpx", or "bunx" depending on your preferred package manager.
Advice:
Remove eas-cli from your project dependencies.

3 checks failed, indicating possible issues with the project.

Error output

Local EXPO_DEBUG output: (paste terminal)

Full server log (fastlane supply summary showing package_name): pasted from submission URL:
https://expo.dev/accounts/allaboutparenting/projects/parenting-chat/submissions/

[email protected] is now available.
To upgrade, run:
npm install -g eas-cli
Proceeding with outdated version.

(node:31348) [DEP0040] DeprecationWarning: The punycode module is deprecated. Please use a userland alternative instead.
(Use node --trace-deprecation ... to show where the warning was created)
Found eas-cli in your project dependencies.
It's recommended to use the "cli.version" field in eas.json to enforce the eas-cli version for your project.
Learn more: https://github.com/expo/eas-cli#enforcing-eas-cli-version-for-your-project

√ What would you like to submit? » Select a build from EAS
√ Which build would you like to submit? » - ID: f513f45a-bb3e-41ce-ba68-fec36b66d2ad (1 minute ago)
Looking up credentials configuration for com.allaboutparenting.nia...
✔ Google Service Account Key already set up.

Project ID: 212939ef-5fc6-4582-850e-32af8f108704
Release track: internal
Changes not sent for a review: false
Release status: COMPLETED
Google Service Account Key:
Key Source : EAS servers
Account Email: eas-play-submit@gen-lang-client-0157391806.iam.gserviceaccount.com
Rollout: undefined
Build:
Build ID : f513f45a-bb3e-41ce-ba68-fec36b66d2ad
Build Date : 3/31/2026, 9:05:06 PM
App Version : 1.0.0
Version code: 8

✔ Scheduled Android submission

Submission details: https://expo.dev/accounts/allaboutparenting/projects/parenting-chat/submissions/32d6da8c-044b-4ff1-a53a-cfeee7e4cf5b

Waiting for submission to complete. You can press Ctrl+C to exit.
✖ Something went wrong when submitting your app to Google Play Store.

You haven't submitted this app to Google Play Store yet. The first submission of the app needs to be performed manually.
Learn more: https://expo.fyi/first-android-submission

Reproducible demo or steps to reproduce from a blank project

This cannot be reproduced in Expo Snack (no EAS Submit / Play API). Steps use a normal managed Expo app.
Prerequisites

  • Expo account, EAS enabled, Google Play service account for submissions (per Expo docs).
  • App config: ios.bundleIdentifier = com.example.iosapp (example)
  • App config: android.package = com.example.androidapp (different from iOS)
    Steps
  1. Create/use a managed Expo app with android.package and ios.bundleIdentifier set to two different values (as in our real app: Android com.allaboutparenting.nia, iOS com.allaboutparenting.parentingchat).
  2. Run: eas build --platform android --profile production (succeeds).
  3. Verify downloaded .aab: AndroidManifest.xml has package="com.allaboutparenting.nia" (correct).
  4. Run: eas submit --platform android --profile production, select that build.
  5. On Expo submission logs, fastlane supply shows package_name = com.allaboutparenting.parentingchat (iOS bundle id) instead of com.allaboutparenting.nia.
  6. Google API error: Package not found for the iOS id.
    Expected: package_name in supply matches android.package / manifest.
    Actual: package_name matches ios.bundleIdentifier.
    Our project is private; we can share redacted app.config snippets and build/submission IDs on request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs reviewIssue is ready to be reviewed by a maintainer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions