eas build error: No matching client found for package name...

I try to build an Expo Dev Client with a different app variant for Android.

I followed the example as in https://docs.expo.dev/build-reference/variants/:

const IS_DEV = process.env.APP_VARIANT === 'development';

export default {
  // You can also switch out the app icon and other properties to further
  // differentiate the app on your device.
  name: IS_DEV ? 'MyApp (Dev)' : 'MyApp',
  slug: 'my-app',
  ios: {
    bundleIdentifier: IS_DEV ? 'com.myapp.dev' : 'com.myapp',
  },
  android: {
    package: IS_DEV ? 'com.myapp.dev' : 'com.myapp',
  },
};

When I run eas build --profile development --platform android the build fails, and I see in the Gradlew logs something like:

[stderr] FAILURE: Build failed with an exception.
[stderr] * What went wrong:
[stderr] Execution failed for task ':app:processDebugGoogleServices'.
[stderr] > No matching client found for package name 'com.myapp.dev''

So the dev version of android.package is a problem. I did the same for iOS and there was no problem.

Any idea?

Hi @tositsa

Do you have an android directory in your app? If so, you’re no longer on the normal managed workflow. If you have this native project you would normally have to do this:

If you have a bare project, you can accomplish this using flavors (Android) and targets (iOS). To configure which flavor is used, use the gradleCommand field on your build profile; to configure which target is used, use the scheme field for iOS.

If you did not intend to switch away from the managed workflow, I suspect you ran npx expo run:android or npx expo prebuild and some point, which has the side effect of generating the native project(s) and basically switching you to the bare workflow as a result.

If you did run npx expo prebuild or similar, and did not intend to switch away from the managed workflow, I suggest you revert the changes made by npx expo prebuild. Then what you did above should work.

See expo.fyi/prebuild-cleanup

Thanks for the reply! This doesn’t seem to be the cause. I don’t have an android directory and as far as I can remember I never ran npo expo prebuild.

I did run expo publish, but that shouldn’t be a problem I think?

I start to suspect it has to do with the google-services.json file that contains the field android_client_info which is set for the normal client (the one we actually submit to the Google Play store).

When I delete (rename) the google-services.json file eas complains that it isn’t there anymore. But why is that relevant for an Expo Dev Client?

Hi

Yes, it looks like you’re right about it being to do with google-services.json.

I suppose you’ll need to get a google-services.json for your dev package name too. Otherwise, whatever you’re using google-services.json wouldn’t be able to work in your dev client anyway.

I’ll give it a try and will let you know :slight_smile:

So yes, that was the problem. Thanks for thinking along!

1 Like

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