36

If the user dismisses the GameCenter login from your app 3 times, they're never prompted again. The authentication handler returns this:

The requested operation has been cancelled or disabled by the user.

In previous versions of iOS (6 and below), the user could go to the GameCenter app, login, and all would be good from that point on - they could return to your app and login as normal.
In iOS7 (as far as I can tell), canceling 3 times permanently disables GameCenter for your app on that device. Deleting/reinstalling the app, or logging out/in, even as a different user, doesn't fix it - you still get that message.

I can't find any setting anywhere that gives the user the option to reenable it for your app.

Does anyone know of a solution for this?

Rahul Patel
  • 5,858
  • 6
  • 46
  • 72
Shaun Budhram
  • 3,690
  • 4
  • 30
  • 41
  • 1
    Wow, if this is true that's...kind of messed up. Just because I didn't feel like logging in several times doesn't mean I don't ever want to use Game Center with that app again. I hope someone has a solution for you, or that this is a bug and Apple fixes it post haste. – WendiKidd Sep 21 '13 at 00:40
  • 9
    This question is relevant to iOS developers. If this is the case and there is no solution, developers need to know to be more aggressive in asking the user not to dismiss the dialog without consideration. – Shaun Budhram Sep 21 '13 at 00:46
  • 9
    Looking on the official Apple developer forum, the current fix is logging out of GameCenter, and then going to Settings->General->Reset->Reset All Settings. That doesn't really seem like a solution to me... – Shaun Budhram Sep 21 '13 at 01:18
  • I found same issue in one app. Game center login is behaving strange with ios7 only though code is same – Rahul Patel Sep 22 '13 at 16:37
  • Might be a solution here: http://stackoverflow.com/questions/18941378/ios7-cant-get-login-in-gamecenter-gain-after-cancel-3-times – livingtech Oct 07 '13 at 14:57
  • 1
    http://stackoverflow.com/questions/19013328/unable-to-sign-in-sandbox-gamecenter-on-ios-7 – DogDog Oct 25 '13 at 18:47
  • @DogDog yes, that is the best one. The short of it is __Settings -> General -> Reset -> Reset All Settings__ – bobobobo Nov 06 '13 at 17:20

2 Answers2

15

General > Reset > Reset All Settings

Thats the only way I've heard of fixing it, hopefully Apple comes up with a more elegant way, because it's downright annoying and absolutely NOT user friendly.

In iOS 6, if you logged out and logged back into GC, it would be re-enabled. But that functionality was removed in iOS 7 for some reason.

Edit:

I read in another SO question, that this works properly (log-out, log-in re-enables GC) outside of a sandbox environment.

Zach
  • 166
  • 2
  • 3
  • 1
    Do you know what's worse? It actually discourages testing _with Game Center not logged in_, since you want to avoid this really tedious total reset, you make sure to log in with Game Center all the time.. don't forget to test how your game works _when Game Center is not logged in_ and to not have any null reference things going on. – bobobobo Dec 17 '13 at 23:56
  • 1
    If Apple wants developers to test all states of Game Center interaction, then they absolutely must fix this. Hopefully there's enough noise from us to ensure this gets corrected in the next interim iOS 7 release. – Mark Freedman Jan 15 '14 at 01:59
  • I just want to add a suggestion - I more or less get around this by prompting the user and asking if they want to enable GameCenter BEFORE bringing up GameCenter's connect dialog. That way, they're very unlikely to cancel it, and if they do, they cancel MY prompt and it doesn't count against my 3 tries. – Shaun Budhram Mar 16 '14 at 23:36
4

I can confirm the following:

On the iPhone Simulator, using Settings, log into your iTunes sandbox account, then log back out. After that, the count will be reset and you can continue testing Game Center view controller authentication.

This is on XCode 5.0.2 and iPhone 4-inch 64-bit Simulator with iOS 7.0.3

gchbib
  • 1,955
  • 1
  • 17
  • 23