eas build producing tar.gz instead of aab when running eas build --platform android

Hello everyone!

I’m having an issue where eas build --platform android is producing a tar.gz bundle instead of the usual aab file. The bundle includes both the aab and apk but I’d rather just have the aab when building for the app store.

The only changes I’ve made today were related to implementing firebase analytics. I didn’t change anything related to eas.

It was working fine this past week but today seems to be different.

Thanks!

Whether you are bare or managed workflow:
Bare

Your eas-cli version:
3.1.0

What you have tried so far:
I’ve tried looking for other people with this issue but no luck

can you share some information about your project and eas.json config?

notice the applicationArtifactPath property under the android key in eas.json:

(string) - Path (or pattern) where EAS Build is going to look for the application archive. EAS Build uses the fast-glob npm package for pattern matching (see their README to learn more about the syntax you can use). The default value is android/app/build/outputs/**/*.{apk,aab} .

if your the gradleCommand that you specify produces both apk and aab at the default path then it will be put into a tarball. you can extract that tarball to access both the apk and aab.

Thanks for the quick response!

Here is my eas.json:

{
  "cli": {
    "version": ">= 3.1.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "android": {
        "buildType": "apk"
      }
    },
    "production": {}
  },
  "submit": {
    "production": {}
  }
}

As you can see, I didn’t have applicationArtifactPath set so you’re 100% correct that it was pulling the default settings of apk and aab. I probably could have set it to just pull the aab but instead I deleted the apk, tried the build again, and it built the aab alone (what I was hoping for).

You’re also correct that the tarball included the aab and apk but it just added more time to the workflow extracting it.

Thanks for the help!

Edit: I wanted to come back and confirm that changing my production profile from "production": {} to

“production”: {
“android”: {
“applicationArchivePath”: “android/app/build/outputs/**/*.aab”
}

and using the production profile when building eas build --platform android --profile production allowed the build to skip the pregenerated apk.

That being said, deleting the apk ahead of time did reduce the archive size that gets uploaded so there may be benefit to delete it before building.

Ah yes. If you build or download a .apk into your app’s directory and it’s not in .gitignore, then eas build will upload it when you run eas build. This does indeed upload unnecessary stuff to the build workers and as in your case, could potentially interfere with the artifact that’s produced.

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