I am testing my peer-to-peer game application by starting a 4-player game (3 real iPhones + 1 simulator iPhone) and I am experiencing an issue where Game Center sends a CONNECT for each player in the match, via the "didChange state" function (as expected), but then immediately sends a DISCONNECT for one of the players. It seems the DISCONNECT is only received by one of the players in the game. In addition, the player who Game Center disconnected, is still available in the game with the remaining players. I would have assumed that if Game Center is going to send a disconnect to one player then it would send the same disconnect to all other players, but this is not the case.
Player 1 = Xcode simulator player
(didChange state) Player 2 CONNECT
(didChange state) Player 3 CONNECT
(didChange state) Player 4 CONNECT
(didChange state) Player 2 DISCONNECT
Player 1 no longer has a network connection to Player 2
Player 1, Player 3 and Player 4 maintain a network connection with each other
Player 2, Player 3 and Player 4 maintain a network connection with each other
This occurs about 1 out of every 13-15 times I attempt to create a 4-player game.
Is there anything which I might be doing that might be causing Game Center to behave this way or is Game Center known to act this way sometimes?