Skip to content

Support identifying with apple game center#194

Merged
tudddorrr merged 1 commit into
developfrom
identify-apple-game-center
May 3, 2026
Merged

Support identifying with apple game center#194
tudddorrr merged 1 commit into
developfrom
identify-apple-game-center

Conversation

@tudddorrr
Copy link
Copy Markdown
Contributor

No description provided.

@tudddorrr tudddorrr added the enhancement New feature or request label Apr 27, 2026
@claude
Copy link
Copy Markdown

claude Bot commented Apr 27, 2026

Code Review: Support identifying with Apple Game Center

This PR adds Game Center authentication support to the Unity SDK. The implementation is clean and follows existing patterns well. Two issues worth addressing before merge.


🟡 Major — Missing .meta file for PlayersGameCenterIdentifier.cs

Every other file in Runtime/Requests/ has a corresponding .meta file (26 .meta files for 26 existing .cs files), but the new PlayersGameCenterIdentifier.cs.meta is absent from this PR.

Unity uses .meta files to assign stable GUIDs to assets. Without it, Unity will auto-generate a new GUID each time the project is opened, causing inconsistent asset tracking across developer machines and noisy future diffs.

Fix: Add PlayersGameCenterIdentifier.cs.meta with a stable, generated GUID alongside the new class file.


🔵 Minor — Renaming identityidentityClient in IdentifySteam is a source-breaking change

// Before
public async Task<Player> IdentifySteam(string ticket, string identity = "")

// After
public async Task<Player> IdentifySteam(string ticket, string identityClient = "")

Renaming a parameter in a public method breaks any caller using a named argument:

// Breaks after the rename:
await Talo.Players.IdentifySteam(ticket, identity: "myClient");

Positional callers are unaffected. The rename makes semantic sense, but it should be noted in a changelog so consumers can update their call sites.


No issues found

  • Code quality: IdentifyGameCenter follows the same structure as IdentifyGooglePlayGames and IdentifySteam — clean and consistent.
  • Encoding: Uri.EscapeDataString(JsonUtility.ToJson(payload)) correctly handles the base64-encoded signature/salt fields and the nested URL in publicKeyURL before passing to Identify.
  • Type safety: long for timestamp is appropriate — Apple's Game Center timestamp in milliseconds fits comfortably within Int64.
  • Security: No concerns; the Game Center token is opaque to the client and validated server-side.
  • Backwards compatibility: No existing Game Center callers to break.

@tudddorrr tudddorrr force-pushed the identify-apple-game-center branch from f860c5a to eb4e05f Compare May 3, 2026 17:53
@tudddorrr tudddorrr merged commit 6aa0e68 into develop May 3, 2026
1 of 2 checks passed
@tudddorrr tudddorrr deleted the identify-apple-game-center branch May 3, 2026 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant