Quick answer: iOS Game Center scores submitted but not appearing on the leaderboard? In App Store Connect the leaderboard must be set to Live, and your bundle must have Game Center enabled.
Tests on TestFlight submit scores via GKLeaderboard but nothing shows. The leaderboard is still in Sandbox-only state.
Live vs Sandbox
App Store Connect leaderboards are Sandbox (test) by default. Submissions from TestFlight + sandbox accounts go to the sandbox. The production leaderboard is empty until first live submission after going Live.
Sandbox Account
iOS Game Center distinguishes sandbox and production accounts. On TestFlight builds, sign in with a sandbox tester. Mixed signs (production account on TestFlight) reject submissions silently.
Submit API
GKLeaderboard.submitScore(score, context: 0, player: GKLocalPlayer.local, leaderboardIDs: ["high_scores"]) { error in
print(error)
}Always log the error — common failures: leaderboard ID typo, player not authenticated, network down.
Authentication Check
Submissions require an authenticated player. Test with GKLocalPlayer.local.isAuthenticated before submitting — otherwise calls silently no-op.
Verifying
Submit a known score from a sandbox account — visible in the sandbox leaderboard within minutes.
“Game Center has two worlds: sandbox and production. Match your tester account.”
Wire a debug menu that submits arbitrary scores — QA can verify leaderboards without playing through the whole game each time.