Technical Note TN2417

Game Center: Life without a Sandbox

Game Center no longer provides a development sandbox. This technotes describes some of the consequences of that change and how you can manage those differences.

Introduction
Existing Sandbox Accounts
Achievements and Leaderboards
Multiplayer Compatibility
Server Side Authentication
Document Revision History

Introduction

As part of the release of iOS 9 and El Capitan, the Game Center development sandbox has been eliminated, allowing all pre-release development to occur in exactly the same server environment as released games. This change brings several advantages including:

For most developers, this change has no effect on the development process, however, there are a few side effects of this change you should be aware of.

Existing Sandbox Accounts

No existing sandbox data is being preserved during this transition. As part of this change you will lose all of your data that currently resides in the sandbox environment. This includes:

If the Apple ID used in the sandbox has not previously been used in the production environment, you will be prompted to create a new profile after the transition has occurred.

Achievements and Leaderboards

By design the Achievements and High Scores of a particular Game Center user have always been visible to that user's friends. As part of this change, that will include Achievements and Leaderboard Scores that have not been formally released as part of a particular game version. Similarly, any game a Game Center player has played is visible to all of that players friends, even if that game has not yet been released.

If any of this data needs to be kept secret as part of your overall release strategy, then you will need to create separate accounts for pre-release testing and carefully manage which Game Center users are allowed to become friends with those accounts.

For more information on this issue, see the WWDC 2015 Session: Going Social with ReplayKit and Game Center.

Multiplayer Compatibility

For both turn based and realtime multiplayer games, the iTunes Connect multiplayer compatibility matrix only applies to versions approved and released to the App Store. Prerelease versions will connect with all other versions of the app, even if the compatibility matrix would have otherwise precluded it. In the worst case, this can potentially lead to crashes and data corruption in earlier versions of your app. Care should be taken when developing and testing new versions of your multiplayer communication format.

Managing Multiplayer Compatibility During Development

When making any changes to your multiplayer communication format, particularly when those changes have not been tested yet, you must very careful which players you create Game Center matches with.

The following techniques can be used to manage this issue:

  • Create dedicated test accounts and only create matches between those accounts.

  • Avoid using auto-match.

  • For larger scale testing, the playerGroup property of GKMatchRequest can be used to restrict matching. If you use this approach be sure to remove the restriction before submitting your app to the store.

  • For larger development projects, consider creating a new test only app in iTunes Connect and use that new app bundle ID to separate all activity from your released apps.

Server Side Authentication

After this change generateIdentityVerificationSignatureWithCompletionHandler will continue to work correctly and simply return the publicKeyUrl for the App Store servers instead of the sandbox. However, if your server had cached the publicKeyUrl and expected a particular environment to sign with a particular key, your server will need to be updated to match the new behavior.



Document Revision History


DateNotes
2015-10-08

Minor editing revision

2015-09-08

New document that describes issues related to the removal of the Game Center sandbox.