I am developing a simple 2D sprite kit game for IOS. I added a leaderboard and some demo accounts to test it out and it all worked fine.
Yesterday, i decided it was time to release version 1.0 of the app and before i submitted the app for review i deleted the existing leaderboard just to make sure no fake scores from my demo accounts remain.
I then submitted the app for review and later when i tried to add a new leaderboard, the process works normally until i reach the point where i press save (to make the leaderboard active) but the button is greyed out no matter what i do. i read the documentation and searched online for similar cases and tried all of the following:
Made sure game center is enabled
chose single leaderboard
made sure the leaderbard reference name is correct
made sure the leaderboard Id is correct
Chose a score format
made sure to write the score range in numbers
create a localization language
however, the save button remains grey and i can not add a leaderboard. i tried today as well, the original leaderboard was deleted and stil the same issue. now when i try to play my game (on my test device) when i reach the end and the score should be submitted, the game crashes (since there is no leaderboard and my code submits the score at this point)
If my game is accepted and goes online it wouldn't be a good thing to have it crashing from version 1.0. I do not know what is causing this and what i can do to solve it, would appreciate any help.
Thank you
Related
My app has been rejected by Apple for 4 times due to the message they sent:
"Your app is using Game Center Leaderboards and Achievements but you have not submitted the them for review."
My app uses Game Centre for Multiplayer mode, however, it does not have any leaderboards or achievements feature, game centre is simply enabled for multiplayer.
Please see the following screenshot for detail.
As you can see, under my app there is no leaderboards or achievements is selected. The only selected game centre option is "Multiplayer compatibility".
In apple's reject email says if I don't use leaderboards or achievements I can turn off game centre, however, as the game need Game Centre for multiplayer, I believe I cannot turn it off.
Under app's "Game Centre" tab in iTunnesConnect, I do have created some leaderboards and achievements, but those are for future updates which is not yet ready in this release. I didnt link those items with my app's submission as the above screenshot indicated.
The following is a screenshot shows the unfinished items I created for leaderboard and achievements. Once again, they are still under development and I didn't link any of them with the current app's submission.
And if you have a closer look I cannot actually delete every leaderboards as the 1st leaderboard item's delete button is disabled.
As it is getting very close to the app's launch date, it is getting critical. Please advice how can I fix this issue "your app is using Game Center Leaderboards and Achievements but you have not submitted the them for review."
Thank you very much!
The following is the full response from Apple:
2.3 - Apps that do not perform as advertised by the developer will be rejected
Thank you for your resubmission and for addressing the previous 2.2 issue. However the 2.3 issue is still presented in your app since the Game Center remains enabled for your app but no Game Center features were submitted.
If you intended to implement Game Center features in your app, please revise your app to include these features. Alternatively, you may wish to disable Game Center for your app and remove all Game Center references from your Application Description, What’s New info and screenshots.
2.3 Details
We still found that your app is using Game Center Leaderboards and Achievements but you have not submitted the them for review.
Next Steps
Please submit the Leaderboards and Achievements for review.
Login to iTunes Connect
Click on “My Apps”
Select your app
Click on “Game Center”
Complete the Leaderboards and Achievements set up
Select “Done”
Once you’ve completed all changes, click the “Submit for Review” button at the top of the App Details page.
Alternatively, if you do not wish to include Leaderboards and Achievements:
- Click the “Disabled/Enabled” button under “Game Center”
- Revise your Application Description, What’s New info, previews and/or screenshots to remove any content that refers to the Game Center feature(s).
ok, after contact with Apple, they have now passed my app's submission. No changes required. Game centre can be used without adding leaderboard or achievement if you are using multiplay compatibility.
I've got a Game Center leaderboard in my game that I display using my own GUI using data retrieved from the GKLeaderboard loadScoresWithCompletionHandler method.
I report new scores using the GKScore reportScoresWithCompletionHandler method. My issue is that when I report a new high score for the local player, when I open up my leaderboard GUI (which forces loadScoresWithCompletionHandler to be called), the player score isn't updated - it's displaying the old one he just beat.
But if I close(not kill) the game and then reopen it and open up the GUI again, hey-presto, the new score is shown.
This tells me that there must be some form of internal caching going on in GameKit that gets reset when the app resumes. I do know that upon the app resuming, GC calls my authenticationHandler to let me know that it has re-authenticated the player so maybe something in that method wipes whatever internal cache is set?
This is the first game I've worked on where I am displaying Game Center data using a custom UI and not the native GC view controller which I've never had this problem with. Has anyone had similar experience with this and could tell me why GKLeaderboard loadScoresWithCompletionHandler gives me old data?
I was having the same issue and it gave me sleepless night especially seeing no answer related to it on stackoverflow and other forums.
Then, i found somewhere that they were reporting new score whenever the level gets completes. And I changed the button from submit leaderboard to show leaderboard, it resolved the issue. I am using GC view controller. and i was only calling showleaderboard as it was a non-custom leaderboard.
I have just started integrating Game Center into my app and so far it has been fine.
I created a leaderboard which works perfectly, and 1 achievement which worked.
It came time to update game centre with all the other information and I have gone onto iTunes Connect and added 9 other achievements as well as adding my app icon into Game Center.
However, when I go into Game Center it appears as it did before I did those updates and I can't seem to get them to show, this includes my app icon, there is nothing there, just the leaderboard which is still updating fine, and the first achievement I made. The other 9 and my icon are nowhere to be seen?
Has anyone had this problem or know any fixes? Id like to be able to test the other achievements before submitting for approval.
Thank you in advance.
When you are submitting your update (in iTunes Connect) you need to make sure that you are checking off to add each of the new achievements.
Just because you create them does not mean you apply them to the update!
I've already implemented auto-matchmaking, and tested it between two actual devices with different game centre accounts, so I know I've setup that part correctly: I can create a match, and send data between both the players. Now I'm implementing the invitations part.
The Game Center programming guide
says:
The playersToInvite parameter is non-nil when your game is launched
directly from the Game Center app to host a match. This parameter
holds an array of player identifiers listing the players to invite
into the match.
What I don't understand, is how to invite players through the game centre app. In the game centre app, I can see my game. When I click on it, in the top right corner there is a button with text: "..." . When I click on it, I see two options: "Play" and "Share". Clicking on "Play" launches my app.
Is there some code I need to implement for the Game center app to present me with the option of selecting friends to invite etc?
EDIT: It appears that the person in this post has almost the same problem as me:
Definitive answer to what playersToInvite is for
But no definitive answer so far, on how that data gets populated.
There are actually a couple of problems, both of which are on apples end:
The documentation is not up to date. While it mentions to use [GKMatchMaker sharedMatchMaker].inviteHandler , it has actually been deprecated in iOS 7, but the documentation has not been updated to reflect this.
It appears that there is no way you can invite players from the Game Center app. The documentation is incorrect in this case - the game centre UI does not provide any way for selecting the players. You invite players using the matchmaking view controller provided by game center.
Instead of using GKMatchMaker.inviteHandler, one can implement GKLocalPlayerListener - but this hasn't been documented properly in the Game Center Programming guide. It is easy to implement as there are only two methods, and work in almost the same way as the deprecated handler.
EDIT: There is a way to invite players from the game center app, but currently there is a bug in iOS 7, so that the game center app's flow in production, does not match the flow in the sandbox. As a result, one must navigate a much more cryptic flow to find the option to invite a player through the game center app. Currently only one player can be invited through the game center app, even if your app supports more than two players.
I have been developing a client game. I have enabled game center from iTunesConnect, created leaderboards and also created InApps. But when I try to call them in the code, there is no response. Game Center is showing no items and in apps are giving any response i.e products are not loaded. Everything is correct, provisioning is correct, bundle id is setup correctly, game center and in apps are enabled. I tried the same code with my own game center and in apps and they worked fine. One thing missing in client's itunes connect is Contact and Tax Information. Is that the problem? Thats why apple isnt allowing me to add game center and in apps? Thanks