Con cada versión de iOS, Apple corrige errores y bugs que afectan a sus dispositivos. Con iOS 12.3, lanzado el pasado mes de abril, la compañía ha corregido un error que dejaba bloqueado el dispositivo. Así lo ha divulgado Natalie Silvanovich, trabajadora de Google Project Zero, a través de la web de esta iniciativa.
Borrar y restaurar el dispositivo como única solución
Tal y como revelan en AppleInsider, se trata de un bug de iMessage que se activa al recibir un mensaje específico. Del reporte creado por Silvanovich:
El método -[IMBalloonPluginDataSource individualPreviewSummary] en IMCore puede lanzar una NSException debido a un mensaje malformado que contenga la propiedad con llave IMExtensionPayloadLocalizedDescriptionTextKey con un valor que no es un NSString. Este método llama a [IMBalloonPluginDataSource _summaryText] que devuelve la propiedad asumiendo que es un "string", pero esto no se comprueba.
El método de llamada entonces llama -[IMBalloonPluginDataSource replaceHandleWithContactNameInString:] que a su vez llama imhandleIdentifiers en el NSString, el cual en realidad es un NSNumber que lanza una excepción dado que el selector no existe para esa clase.Este error tiene efectos distintos en un Mac y en un iPhone. En el Mac, provoca que el soagent se crashee y relance. Pero en el iPhone acaba haciéndolo con el springboard. Por esta razón, el error entra en bucle y no se puede solucionar con un borrado completo del dispositivo.
La única solución aparente es reiniciar el dispositivo en modo de recuperación y restaurarlo. Si te interesa …