Я играл с сессиями некоторое время назад, но есть некоторые предложения ...
- после возобновления, что произойдет, если вы попытаетесь отправить упакованное с устройства, которое спало, на устройство, которое не спало? это проходит?
- вам нужен GKPeerStateUnavailable / available? Из моего опыта все, что вам нужно использовать, это методы applicationDidBecomeActive и applicationWillResignActive: когда вы идете в спящий режим, вы отправляете GAME_PAUSED на другое устройство, а когда проснулись - GAME_UNPAUSED. Если пользователь переводит приложение в спящий режим, а затем закрывает его - ну, не повезло, другой игрок будет сидеть там вечно (так что вы можете дать ему возможность выйти в главное меню). Этот подход работает с яблоком (с точки зрения одобрения) - протестировано на двух приложениях.
Привет! * * 1005