При использовании аутентификацииHandler в iOS 6 игровой центр не будет отображать окно входа в систему, если пользователь отменит его. Я понимаю, что игровой центр автоматически блокирует приложение после 3 попыток отмены, но я говорю только о двух попытках. Если они отменили регистрацию, они должны покинуть приложение и вернуться, прежде чем игровой центр представит логин, даже через authenticateHandler снова будет установлен. Любые идеи о том, как обрабатывать этот случай в iOS 6?
Он отлично работает при использовании более старого метода authenticateWithCompletionHandler:
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_6_0
GKLocalPlayer.localPlayer.authenticateHandler = authenticateLocalPlayerCompleteExtended;
#else
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:authenticateLocalPlayerComplete];
#endif
Причина, по которой это важно для моего приложения, заключается в том, что для него требуется игровой центр для мультиплеер. Приложение пытается аутентифицироваться в игровом центре при запуске, но если пользователь отменяет, мы не будем спрашивать их при запуске снова, чтобы они не пострадали. Что мы делаем - это кнопка входа в Game Center, если они не вошли в систему, когда они выбирают мультиплеер. Кнопка входа в систему заставляет войти в игровой центр, вызвав authenticateWithCompletionHandler (и теперь снова установив GKLocalPlayer.localPlayer.authenticateHandler).