Skip to content
Shiny.NET

Game Center | Platform Setup

  1. Entitlement - add this to Platforms/iOS/Entitlements.plist (or the Mac Catalyst / macOS equivalent):
    <key>com.apple.developer.game-center</key>
    <true/>
    Check that the Game Center capability is on for the App ID, then regenerate the provisioning profile.
  2. App Store Connect - create achievements and leaderboards under Features → Game Center. Then, on the app version page, tick Game Center and add them. Achievements that aren’t attached to the version don’t go live.
  3. Friends - GetFriendsAsync needs a usage string in Info.plist. Without it, the library throws NotConfigured (GameKit would otherwise terminate the app).
    <key>NSGKFriendListUsageDescription</key>
    <string>See which of your friends play and compare scores</string>
  4. Sandboxed macOS apps also need com.apple.security.network.client.

Test with a sandbox account or through TestFlight. The dashboard opens through GKAccessPoint, because GKGameCenterViewController is deprecated in the 26 SDKs. The old view controller is used only to open a single leaderboard on iOS 15-17.

  1. Play Console - open Play Games Services → Setup and management → Configuration. Create the Games project and link it to the app. Then add achievements (standard or incremental) and leaderboards, and copy their CgkI... ids.
  2. Manifest - add this inside <application>:
    <meta-data android:name="com.google.android.gms.games.APP_ID"
    android:value="@string/game_services_project_id" />
    and add the numeric project id from the Play Console as a string resource (Platforms/Android/Resources/values/strings.xml):
    <string name="game_services_project_id" translatable="false">123456789012</string>
  3. Signing keys - add an OAuth Android credential for the SHA-1 of every key that signs the app: your debug keystore, your upload key, and the Play App Signing key (shown under App integrity). If a key is missing, sign-in fails with status 10, which surfaces as NotConfigured.
  4. Testers - until Play Games Services is published, only accounts on its Testers tab can sign in.

No Android permissions are needed beyond INTERNET. The package uses Xamarin.GooglePlayServices.Games.V2.