los artículos de iPhone keychain persisten después de la desinstalación de la aplicación?

Estoy jugando con el código de cifrado de iPhone de Iidandersen para llavero y encontré el siguiente comportamiento: configuré la contraseña usando, por ejemplo

[SFHFKeychainUtils storeUsername:@"User" andPassword:@"123" forServiceName:@"TestService" updateExisting:YES error:&error]; 

A continuación, elimine la aplicación de prueba del dispositivo e instálela de nuevo: la contraseña establecida anteriormente parece permanecer en el llavero …
¿Es el comportamiento esperado? ¿Y hay alguna manera de asegurarse de que la contraseña que configuro se elimine con la aplicación?

Sí, este es el comportamiento esperado y correcto.

Algunos elementos de llavero se pueden compartir con otras aplicaciones que controlas (que comparten el mismo grupo de acceso a elementos de llavero).

Deberías dejar solo la información cuando se elimine tu aplicación. No tiene callback ni método para eliminar los elementos del llavero al eliminar su aplicación.

Editar: Finalmente revirtieron el comportamiento descrito en mis respuestas, por lo que hasta que todos se alejen de ese rango de versiones, esto ya no debería suceder.

Desafortunadamente, este ya no es el caso. Ha sido cambiado desde iOS 10.3.

Este es un cambio intencional en iOS 10.3 para proteger la privacidad del usuario. La información que puede identificar a un usuario no se debe dejar en el dispositivo después de que se eliminó la aplicación que lo creó.

Nunca ha sido parte del contrato de la API que los elementos de llavero creados por una aplicación sobrevivan cuando se elimina la aplicación. Esto siempre ha sido un detalle de implementación.

Ver la referencia aquí .