GKTurnBasedExchanges does not notify turn holder when the exchange is completed

Hey,

I have an ongoing Apple Support ticket, but WWDC is in the way: when the exchange is completed the requester gets the replies notification, but the turn holder gets no notification.

I’m testing using two and three devices.

The project is available on GitHub (which is currently offline!): Gatada/TurnBasedGameFlow

To recreate the issue, create a game for tree players, then start an exchange between the two players that are not the turn holder. As you can see, no notification is received by the turn holder.

Can someone that has gotten exchanges to work, tell me how? Right now, the turn holder will resolve the completed exchanges only when the game is loaded. So if the exchange is completed after the turn holder has loaded the game, she will need to reload the game to end the turn. Which is obviously not a good game experience.

A cheap workaround would be to only allow turn holder to initiate an exchange, but this is according to Apple not a required limitation.

Accepted Reply

No, that will not work. First of all - that would mean that the turn holder will be able to act on the exchange. Of course I already tried this, and implemented an immediate "ignore" exchange response from turn holder.

Second, and more importantly, including the turn holder will still not result in the turn holder being notified when the exchange is completed. Which is the entire problem. So including the turn holder changes nothing.

Finally, I managed to book a lab 1-on-1 session with Apple during WWDC, and after some investigation the Apple Tech established that the Apple server does in fact not send the notification to the turn holder if that participant isn't also the requester.

Apple will fix this issue as soon as possible. Meanwhile, we should develop our game as if the notification is received. You can check my GitHub project that implements this correctly: https://github.com/Gatada/TurnBasedGameFlow

Replies

Consider including the turn holder in the exchange as well as the sender/receiver. Then they can get notified when the exchange is sent.
No, that will not work. First of all - that would mean that the turn holder will be able to act on the exchange. Of course I already tried this, and implemented an immediate "ignore" exchange response from turn holder.

Second, and more importantly, including the turn holder will still not result in the turn holder being notified when the exchange is completed. Which is the entire problem. So including the turn holder changes nothing.

Finally, I managed to book a lab 1-on-1 session with Apple during WWDC, and after some investigation the Apple Tech established that the Apple server does in fact not send the notification to the turn holder if that participant isn't also the requester.

Apple will fix this issue as soon as possible. Meanwhile, we should develop our game as if the notification is received. You can check my GitHub project that implements this correctly: https://github.com/Gatada/TurnBasedGameFlow
Hi @JohanHWB,

According to our server team, this issue have been fix on the server side.
Would you mind to verify it on your end?
Thank you for your feedback and appreciate your feedback during the WWDC session.

Hey Frameworks Engineer ,

I just tested the mockup project I made for WWDC, and it does look like the backend bug has been fixed, and exchanges - finally - work as documented. Great!

I'll update the Github project so it properly shows the exchange data as part of the game date, something I obviously hadn't been able to test - until now.

This should get a lot more attention than it has so far, as this means trading games and all kinds of amazing game mechanics are finally supported by Game Center! Amazing and super exiting!