Specifically, I am wondering whether I should create a GKScore or save the score value in my own object. Either way, I’d save the score object to file as a .plist in case the app is terminated before the score can be successfully submitted to the game Center servers.
Perhaps there is an advantage to saving it as a GKScore because the date might be preserved, but more importantly, is a GKScore more tamper-resistant? I’m looking to head off cheaters who have access to modifying the saved file direcly, thus modifying their score before it gets submitted to game center.
UPDATE: after reading the Game Kit Programming Guide a bit more closely, it tells us that in iOS 4, re-reporting scores is left up to your app; however, in iOS 5 this is automatically handled by a reporting task in the background. Therefore, this question is only really relevant for iOS 4 (which I and most others still plan to fully support, of course).
I’m a little late to this discussion, however….
This topic is briefly discussed in the Game Center Essentials talk by Allan Schaffer, Apple Game Technologies Evangelist. This was released to iTunes U in 2011.
At around the 22:30 mark, the discussion turns to archiving the GKScore object for later submission. To limit cheating, the recommendations are to: