I created a game that uses real-time multiplayer programmatically. It was originally targeted to towards IOS 8 devices. Recently after migration to IOS 9, Game Center has caused a lot of problems. The main issue I cannot resolve is Inviting a friend in multiplayer (for testing).
From IOS 8 to IOS 8. Auto match works and Friend invitations work But from IOS 9 to IOS 9. Auto match works and Friend invitations do not work anymore.
If any of you have managed to make Game Center invitations work on IOS 9. Please guide me to the right path.
What I currently know:
- This is a game center issue because I have tested the issue on a different app from scratch. Which caused the exact same problem
- I am using accounts that are registered as internal testers on iTunes connect Testflight
- IOS 9 has merged sandbox with production
- When I send invites it doesn't get received on other device (IOS 9 only)
- Notification are turned on both devices and Push Notifications are enabled for the app
- Restarting devices didn't resolve anything. I have tested both IOS 9.0.0 and 9.0.1
- I am aware that 9.0.2 has game center loading issues which I would like to avoid for the time being
UPDATE - 9/10/15 After they turned off sandbox for IOS 8. Auto-match has started working between IOS8 and IOS9. But the friend still seems to be an issue. The friend has also stopped working for me on IOS 8.
Game Center callback seemed to run on a different thread and caused a 80% chance of a crash on connect. The solution was to run the code on the main thread and it was resolved. But the threading issue didn't fix the friend bit.
After trying to start match with a friend request it throws an error as follows:
Error Domain=GKErrorDomain
Code=3
"The requested operation could not be completed due to an error communicating with the server."
UserInfo={
GKServerStatusCode=5096,
NSLocalizedDescription=The requested operation could not be completed due to an error communicating with the server.,
NSUnderlyingError=0x136e23230 {
Error Domain=GKServerErrorDomain
Code=5096
"Peer device (type: iPad) does not support a game compatible with: unknown:com.xxx.xxx:x:x.x"
UserInfo={
GKServerStatusCode=5096,
NSLocalizedFailureReason=Peer device (type: iPad) does not support a game compatible with:
unknown:com.xxx.xxx:1:x.x
}
}
}