expo: Can't sign in to two different dev clients at the same time on Android 9

Summary

I built and installed Android dev clients for two different apps. I logged into the first, successfully, but when I tried logging into the second, the redirect back to the dev client at the end of the login process prompted to choose between both dev clients. When I chose the correct one, I was still not logged in. I have not tested this on iOS.

Managed or bare workflow? If you have made manual changes inside of the ios/ or android/ directories in your project, the answer is bare!

managed

What platform(s) does this occur on?

Android

Package versions

  "dependencies": {
    "expo": "~42.0.1",
    "expo-dev-client": "^0.4.4",
    "expo-file-system": "~11.1.3",
    "expo-status-bar": "~1.0.4",
    "react": "16.13.1",
    "react-dom": "16.13.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz",
    "react-native-progress": "^5.0.0",
    "react-native-svg": "12.1.1",
    "react-native-tesseract-ocr": "^2.0.3",
    "react-native-web": "~0.13.12"
  },

Environment

  Expo CLI 4.7.3 environment info:
    System:
      OS: macOS 11.4
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 16.4.2 - /opt/homebrew/bin/node
      Yarn: 1.22.10 - /opt/homebrew/bin/yarn
      npm: 7.18.1 - /opt/homebrew/bin/npm
    SDKs:
      iOS SDK:
        Platforms: iOS 14.5, DriverKit 20.4, macOS 11.3, tvOS 14.5, watchOS 7.4
    IDEs:
      Android Studio: 4.2 AI-202.7660.26.42.7486908
      Xcode: 12.5.1/12E507 - /usr/bin/xcodebuild
    npmPackages:
      expo: ~42.0.1 => 42.0.1
      react: 16.13.1 => 16.13.1
      react-dom: 16.13.1 => 16.13.1
      react-native: https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz => 0.63.2
      react-native-web: ~0.13.12 => 0.13.18
    Expo Workflow: managed

Reproducible demo or steps to reproduce from a blank project

I am testing out EAS Build and Development Clients on my Galaxy S8.

I created one project, built the dev client with eas build and installed it on my phone. I ran it and signed in and was able to load the experience.

I then created another project, built the dev client with eas build and installed it on my phone alongside the first. I ran it and tried to sign in, but was unable to.

After I clicked on the sign in button it opened the login page in the web browser. I entered my username and password. It asked for an OTP, which I entered. It verified the OTP, but when it tried to redirect back to the dev client something went wrong:

Instead of just redirecting to the second dev client it prompted me to choose between the two dev clients. When I chose the correct one it switched back to the dev client, but I was still not logged in.

The app name, slug, package etc. were all different in both dev clients, so I don’t know why it would not be able to redirect to the correct app directly.

Stacktrace (if a crash is involved)

No response

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 21 (21 by maintainers)

Most upvoted comments

this is still a known issue we’re tracking internally, so going to remove the stale label, though we have no timeline for a fix right now

Ah, I’m glad you mentioned Android 9 – that was the missing piece here. I was able to reproduce this behavior on an Android 9 emulator (confirmed it seems to be fixed by Android 10 and 11). Thank you for the report and the workaround!