Skip to content

AI & TechnologyGoogle Play Games Services v1 Shutdown 2027: Migrate to v2

Simon Dziak
Simon Dziak
Founder & developer, App369
LinkedIn
October 19, 20269 min

Key takeaways

  • Google's deprecation table says "May 2027" for the Play Games Services v1 shutdown, when "All traffic from Play Games Services v1 blocked". A bullet on the same page says "From June 2027, the games v1 SDK will be removed." Google gives the month, not a day, and I could not reconcile the two, so I plan around the earlier one.
  • Two steps are already past. Google says "Since June 15, 2026, the deprecated APIs have been removed from the SDK" (play-services-games 25.0.0), and "Since September 2026, the Google Sign-In for Android API is no longer supported."
  • If you are still on v1, Google says not to upgrade to play-services-games 25.0.0. The migration guide says you can move up to 24.0.0 before you migrate.
  • The v2 change is mostly deletion: sign-in happens automatically at launch, GoogleSignInClient gives way to GamesSignInClient, Games.getXxxClient() becomes PlayGames.getXxxClient(), and getServerAuthCode() becomes requestServerSideAccess().
  • For Flutter, I could not confirm from pub.dev whether the games_services plugin is built on v1 or v2, so check its Android dependency yourself before you assume you are safe.

Pricing an app? Try the free app cost calculator or get a range for your project in the instant quote.

Google's deprecation page says Play Games Services v1 shuts down in "May 2027", when all v1 traffic is blocked and existing v1 APIs stop working in production, and a bullet on the same page says "From June 2027, the games v1 SDK will be removed." Google gives the month, not a day, and the page does not explain the gap. Two earlier steps are already past: the v1 APIs were removed from the play-services-games SDK on June 15, 2026, and Google Sign-In for Android stopped being supported in September 2026. If your Android game or Flutter app uses leaderboards, achievements or saved games through v1, the page says the only option is to migrate to v2 before the shutdown.

I checked Google's pages on October 19, 2026. Google can change a date, so open the linked page before you plan around it.

Disclosure: App369 is my studio. I build and fix Flutter and Firebase apps, and the last section mentions what I sell. Google doesn't pay me for anything on this page.

The dated timeline

Date (as Google states it)What happensWhat to do
September 12, 2025play-services-games 24.0.0 released and marked Deprecated. Plugin for Unity v0.10.15 (September 17, 2025) also Deprecated.Google says existing v1 titles keep working, but Google Play prevents publishing new titles that use the v1 SDK and APIs.
"June 2026" (table); June 15, 2026 (version table and bullet)play-services-games 25.0.0: v1 API removed from the SDK.Past. Stay on v1 only at 24.0.0 or lower, and do not upgrade to 25.0.0 until you have migrated.
"as of May 2026"Per the table, play-services-auth no longer provides Google Sign-In (GSI).Past. A game not yet on v2 might see compile errors.
"September 2026" (table); "Since September 2026" (bullet)Google Sign-In for Android API removal and "no longer supported".Past. Follow the page's resolution path for compile errors from third-party SDKs, then migrate.
"May 2027" (table)Play Games Services v1 shutdown. All v1 traffic blocked. Existing v1 APIs stop working in production.Migrate before this date. Google says it is the only option.
"From June 2027" (bullet)"the games v1 SDK will be removed. Calls to these APIs will fail, even if you're using previous versions of the SDK."Same job, and it means older SDK versions do not save you.

Google's table lists the rows in a different order from the one above. I sorted them by date for reading. Source: the deprecation page, last updated 2026-10-06 UTC when I read it.

The date conflict

The same page gives two dates for the end of v1, and I want to show both as Google states them.

  • The table says "May 2027" under the milestone "Play Games Services v1 shutdown", with the impact "All traffic from Play Games Services v1 blocked".
  • A bullet says "From June 2027, the games v1 SDK will be removed. Calls to these APIs will fail, even if you're using previous versions of the SDK."

They could describe two steps a month apart, or one step described twice. No page I fetched says which. So I do not pick one. My advice: treat May 2027 as the date to be finished by, and use June 2027 as the outside edge, not as extra time.

What already happened (and why it matters now)

  • June 15, 2026: Google says "the deprecated APIs have been removed from the SDK" and lists play-services-games 25.0.0 as the release that removed the Play Games Services v1 API. A game that upgrades to it while still on v1 may find its Play Games Services features stop working.
  • May 2026, per the table: "play-services-auth no longer provides GSI". So a game not yet on v2 might get compilation errors.
  • September 2026: "the Google Sign-In for Android API is no longer supported." The page says this affects games when a third-party or Google SDK needs an authentication upgrade. The page walks through three scenarios. If the SDK simply upgrades to the latest auth SDK, the page says "Play Games Services v1 will break" and your build fails to compile. If it adds Credential Manager instead, you also get compile errors. In every case the page's fix is to revert that SDK's version.

My advice: pin your Android dependencies and read changelogs before you update an auth-related SDK. For the wider Google sign-in change, see my guide to the Google Sign-In deprecation and Credential Manager.

What changes from v1 to v2

Google's migration overview and migration guide describe these changes.

Sign-in is automatic. v2 splits signing in into two layers: platform authentication, handled by the SDK, and in-game authentication, handled by your game. The overview says authentication happens automatically in the background at launch, and that there is no manual "Sign in" button required for Play Games Services itself. In code, GoogleSignInClient is replaced by GamesSignInClient, and the guide says to check gamesSignInClient.isAuthenticated() instead of calling GoogleSignIn. If the player is not authenticated, either disable the integration or show a button that calls gamesSignInClient.signIn(). The guide also says to re-check in onResume(), because the state can change while the app is inactive.

Sign-out and account switching go away. The guide says to remove the GoogleSignInClient.signOut code. The overview says the sign-out API is not required because v2 is a persistent platform identity, and that users change their Play Games Services profile in the device settings.

Client classes and removed APIs. Use PlayGames.getXxxClient() instead of Games.getXxxClient(), for AchievementsClient, EventsClient, GamesSignInClient, LeaderboardsClient, PlayerStatsClient, RecallClient, SnapshotsClient and PlayersClient. The guide says to remove any GamesClient and GamesMetadataClient code, since v2 has no replacement for them. It also replaces GoogleApiClient with connectionless clients, and gives a table that maps old classes, such as com.google.android.gms.games.achievement.Achievements, to AchievementsClient.

Server-side access. GoogleSignInAccount.getServerAuthCode() is replaced by GamesSignInClient.requestServerSideAccess(...). It takes your OAuth 2.0 web client ID, a forceRefreshToken flag and additional scopes, and returns an auth code you send to your server and exchange for an access token. The overview adds that v2 can request three basic OAuth 2.0 identity scopes this way, while v1 could request additional scopes through GoogleSigninClient. If your backend relies on extra scopes, test this early.

Dependencies and setup. Replace com.google.android.gms:play-services-games with com.google.android.gms:play-services-games-v2, using the latest version of the games SDK, as the guide says. Add a com.google.android.gms.games.APP_ID meta-data element in your manifest that points to your Games Services project ID from the Play Console Configuration page. Initialize with PlayGamesSdk.initialize(this).

Your own player accounts. This is the part most people miss. The guide gives two paths. If your in-game account is bound only to the Play Games Services Player ID, you need a "Sign in with Google" login with Credential Manager, and the guide describes retrieving both the OpenID and the Player ID (using the GAMES_LITE scope) so existing players are linked to their old accounts. If your in-game account is already bound to an OpenID, you only do the standard SDK steps.

How to tell if you are on v1

Google's pages give no formal detection procedure, so here is the pattern I would look for.

  1. Dependencies. The migration guide has you replace com.google.android.gms:play-services-games with com.google.android.gms:play-services-games-v2. If your build still has the first, you are on v1. The overview says v1 "Requires play-services-auth" (com.google.android.gms:play-services-auth).
  2. Version. Google lists 24.0.0 as the deprecated v1 release and 25.0.0 as the one that removed v1 APIs. The guide says you can upgrade to 24.0.0 but not to 25.0.0 while still on v1.
  3. Sign-in code. Search for GoogleSignInClient, GoogleSignIn and GoogleSignInAccount. These are v1 sign-in patterns.
  4. Client calls. Search for Games.getLeaderboardsClient, Games.getAchievementsClient and other Games.getXxxClient() calls. v2 uses PlayGames.getXxxClient().
  5. Old classes. GoogleApiClient, GamesClient and GamesMetadataClient are on the list of things the guide says to replace or remove.
  6. Server auth. getServerAuthCode() is the v1 server-side pattern.

For a Gradle project, I would also print the dependency tree and look for play-services-games and play-services-auth. That is my own check, not something Google's pages describe.

Flutter

In a Flutter app, the Play Games calls sit inside a plugin, and the Android code is the plugin's. I fetched the pub.dev page for games_services (5.3.0 when I read it). It says only "A Flutter plugin to support Game Center and Google Play Games services", lists games_services_platform_interface as a dependency, and does not say which Play Games Services version or sign-in approach the plugin uses. I could not confirm that from a primary source, and I did not find an official Flutter or Google page that says it either.

So I cannot tell you whether a given Flutter plugin version is on v1 or v2. My advice: open the plugin's Android build.gradle, look at which play-services-games artifact it pulls, and read your app's merged dependency tree. If it pulls the v1 artifact, ask the maintainer about a v2 release or plan to replace the plugin before May 2027. Do not force the 25.0.0 version into a v1-based plugin, because Google says it removes the v1 APIs.

Native game engines have their own guides. The deprecation page links a Unity migration guide for the Unity plugin, which I did not read.

A short plan

  1. Find out where you are. Use the checks above, and note your play-services-games version.
  2. Freeze updates. Do not move to play-services-games 25.0.0 or a new auth SDK until you have a migration branch.
  3. Pick your account path. Is your in-game account bound to the Player ID or to an OpenID? That decides how much work the migration is.
  4. Swap the SDK. Dependency, project ID, PlayGamesSdk.initialize, GamesSignInClient, client class names.
  5. Fix the server. Move to requestServerSideAccess and check your scopes.
  6. Test saved games, leaderboards and achievements and follow the testing section of the migration guide. Then publish through the Play Console.

Google's target API requirement and zero-tap sign-in requirements are separate Play deadlines worth checking in the same pass.

For every other dated Apple, Google Play and Firebase requirement in 2026 and 2027, see App Store and Google Play deadlines for 2026 and 2027.

Need a hand?

If your Flutter or Android game still uses Play Games Services v1 and you want it moved to v2 before Google shuts it off, the App Fix Ticket covers it in two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days and comes as a pull request. Or send me a short description.

Frequently asked questions

When does Google Play Games Services v1 shut down?
Google's deprecation table lists "May 2027" for the v1 shutdown and says all v1 traffic is blocked and existing v1 APIs stop working in production. A bullet on the same page says "From June 2027, the games v1 SDK will be removed. Calls to these APIs will fail, even if you're using previous versions of the SDK." Google gives the month, not a day. I plan around May 2027.
Do I have to migrate because Google Sign-In was removed?
Not by itself, according to the deprecation page. Its table of three auth-upgrade scenarios ends with "Game does not need to upgrade from Play Games Services v1 to v2" in each (in the first, the third-party SDK just stays out of date). But the page also says that if you upgrade the auth SDK, v1 "will break" until you revert it, and the May 2027 shutdown requires v2 either way.
Can I just update play-services-games to the latest version?
Not if you are on v1. Google says games on v1 must not upgrade to play-services-games 25.0.0, because it removes the v1 APIs. A game that upgrades anyway may see its Play Games Services features stop working. The migration guide tells you to swap the dependency for play-services-games-v2 instead.
Do I need a sign-in button in v2?
Not for Play Games Services itself. Google's overview says there is no manual "Sign in" button required for Play Games Services itself, because v2 authenticates players automatically at launch. Your own game account (the in-game authentication layer) is still your job, and the migration guide describes two paths depending on whether it is bound to the Player ID or to an OpenID.
How do I get a server auth code in v2?
The migration guide replaces GoogleSignInAccount.getServerAuthCode() with GamesSignInClient.requestServerSideAccess(), which takes your OAuth 2.0 web client ID, a forceRefreshToken flag and any extra scopes. You send the returned auth code to your server and exchange it there. The overview says v2 can request three basic OAuth 2.0 identity scopes this way, whereas v1 could request additional scopes.
Does the Flutter games_services plugin use v2?
I could not confirm it. The plugin's pub.dev page (version 5.3.0 when I read it) describes it as "A Flutter plugin to support Game Center and Google Play Games services" and does not say which Play Games Services version or sign-in approach it uses. Check the plugin's Android dependencies in your build before you decide.

Sources

  1. Android Developers, Play Games Services v1 deprecation
  2. Android Developers, Migrate to Play Games Services v2 (Java or Kotlin)
  3. Android Developers, Play Games Services migration overview
  4. pub.dev, games_services
Tags
#play games services v1 shutdown #play games services v2 migration #play-services-games-v2 #play-services-games 25.0.0 #google sign-in android removal #GamesSignInClient #requestServerSideAccess #play games services deprecation 2027 #flutter games_services #android leaderboards achievements migration
Share:

Related Resources

Related guides