¿Por qué mi compañero MCSession se desconecta al azar?

Estoy usando MCNearbyServiceBrowser y MCNearbyServiceAdvertiser para unir dos compañeros a una MCSession. Puedo enviar datos entre ellos utilizando el método sendData de MCSession. Todo parece estar funcionando como se esperaba hasta que recibo un MCSessionStateNotConnected a través de el controlador didChangeState de MCSessionDelegate de la sesión al azar (y no debido a ningún evento que controle). Además, el array connectedPeers de MCSession ya no tiene mis compañeros.

Dos preguntas: ¿Por qué? y ¿Cómo evito que la MCSession se desconecte?

Respuestas a la pregunta(5)

Su respuesta a la pregunta