Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change EAS Managed Keystore Value Used #1048

Closed
marcfrankel opened this issue Apr 4, 2022 · 10 comments
Closed

Change EAS Managed Keystore Value Used #1048

marcfrankel opened this issue Apr 4, 2022 · 10 comments

Comments

@marcfrankel
Copy link

Build/Submit details page URL

No response

Summary

I apologize if I'm missing something simple here and this is likely not a bug, but for the life of me I cannot find anywhere in the command line's code or in the documentation on how to switch between Keystore keys (Android Build Credentials) uploaded to the project's credentials section on EAS. Does someone know how to do this? Is there some CLI flag I am missing?

Managed or bare?

Managed (Custom Dev Client)

Environment

expo-env-info 1.0.2 environment info:
System:
OS: macOS 12.3.1
Shell: 5.8 - /bin/zsh
Binaries:
Node: 16.13.2 - /usr/local/bin/node
Yarn: 1.22.18 - ~/.yarn/bin/yarn
npm: 8.1.2 - /usr/local/bin/npm
Watchman: 2022.03.14.00 - /usr/local/bin/watchman
Managers:
CocoaPods: 1.11.2 - /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms: DriverKit 21.4, iOS 15.4, macOS 12.3, tvOS 15.4, watchOS 8.5
Android SDK:
API Levels: 29, 30, 31
Build Tools: 29.0.2, 30.0.2, 31.0.0, 32.0.0
System Images: android-29 | Intel x86 Atom, android-29 | Intel x86 Atom_64, android-29 | Google APIs Intel x86 Atom, android-29 | Google APIs Intel x86 Atom_64
IDEs:
Android Studio: 2021.1 AI-211.7628.21.2111.8193401
Xcode: 13.3/13E113 - /usr/bin/xcodebuild
npmPackages:
expo: ~44.0.6 => 44.0.6
react: 17.0.1 => 17.0.1
react-dom: 17.0.1 => 17.0.1
react-native: 0.64.3 => 0.64.3
react-native-web: 0.17.7 => 0.17.7
npmGlobalPackages:
eas-cli: 0.48.2
expo-cli: 5.3.0
Expo Workflow: bare

Error output

No response

Reproducible demo or steps to reproduce from a blank project

  1. Go to EAS.dev and navigate to a project's credentials page
  2. Under the Android android tab click on your app's bundle identifier
  3. On this page we have more than one "named" Build credentials and I'm not sure how to switch between them at build time. It always just seems to use the "default" one.
@marcfrankel marcfrankel added the needs review Issue is ready to be reviewed by a maintainer label Apr 4, 2022
@wkozyra95
Copy link
Contributor

wkozyra95 commented Apr 5, 2022

Switching those values is not supported from the build process level, but it should be possible to change what the default is.

If you want to use different configs dynamically with the build you need to have separate bundlIdentifiers/applicationIds. This solution has also added benefit of allowing you to install them on the device at the same time. https://docs.expo.dev/build-reference/variants/

If you have a use case where you need the same applicationId/bundleidentifier, but different signing credentials please describe it, we might consider adding sth to support that better.

@wkozyra95 wkozyra95 removed the needs review Issue is ready to be reviewed by a maintainer label Apr 5, 2022
@marcfrankel
Copy link
Author

Hmm does seem a bit weird that you can name them and manage them via EAS, but not select them at build. However, I respect your point. In terms of the build variants, I actually stumbled upon that page a few days ago and boy do I wish I read that sooner ha! We're a little far down a rabbit hole to switch to that, but I think we eventually will.

Our use case mainly revolves around having separate Firebase Projects for each of our staging environments (IE Production vs Development). Each of those environments has a separate key hash just to make sure there is zero data overlap. Probably not super common so likely no need to build something for us. Other than the fact it kind of makes sense you should be able to choose named keys from the command line. Because if not it's not really a "default" key but rather a "selected" key. Just my two cents. Thanks for the help!

@alexvazquez
Copy link

@marcfrankel I have the same requirement. DId you find a way?

@alexvazquez
Copy link

@wkozyra95 I have my same package identifier name and I need to change the keystone. I used one wrongly by mistake. How can I update it or change it?

@marcfrankel
Copy link
Author

@alexvazquez I ended up going the route of using different package names for local, dev, and production to solve the issue. More work at the start, but it's quite convenient once you get going. In case you're curious this is the "page I stumbled upon a few days ago" that I mentioned. https://docs.expo.dev/build-reference/variants/.

Sorry I can't be of much more use than that.

@Franco-Julian
Copy link

I had the same problem and luckily I could solve it, entering via "eas open" opens the project page, and inside credentials, and selecting the application identifier you can change which keystore is used by default and even add a new one.

@Gerald-ux-ux
Copy link

just go to the dashboard, click on credentials and update from there

@diegoleondev
Copy link

Yo tuve el mismo problema y por suerte lo pude solucionar, entrando por "eas open" se abre la página del proyecto, y dentro de credenciales, y seleccionando el identificador de la aplicación puedes cambiar que keystore se usa por defecto e incluso agregar uno nuevo.

I create the build locally, is it possible to change the keystore locally?

@CamiloErb
Copy link

I have the same issue, I have one package name where luckly we can create various build credentials and change which one is default on the dashboard, but for some reason I can't find a way to change which build credentials to use during build time. Isn't this something that would make sense to have? maybe I'm missing something here

@jcapogna
Copy link

jcapogna commented Jan 31, 2025

Looks like this got added recently: #2775

It's not in the documentation yet, but this works:

eas.json

"production": {
      "environment": "production",
      "distribution": "store",
      "autoIncrement": true,
      "android": {
        "buildType": "app-bundle",
        "credentialsSource": "remote",
        "keystoreName": "Build Credentials Production"
      }
    }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants