2010-09-08 11 views
37

estoy jugando con el código de idandersen scifihifi-iphone para llavero y se encontró con el siguiente comportamiento - me puse la contraseña utilizando, dicen¿los artículos del llavero del iphone persisten después de la desinstalación de la aplicación?

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

continuación, elimine la aplicación de prueba desde el dispositivo e instalar de nuevo - la contraseña establecida previamente parece seguir siendo en llavero ...
¿Es el comportamiento esperado? ¿Y hay alguna manera de asegurarse de que la contraseña que configuro se elimine con la aplicación?

Respuesta

30

Sí, este es el comportamiento esperado y correcto.

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

Solo debe dejar la información sola cuando se elimine su aplicación. No tiene devolución de llamada ni método para eliminar los elementos del llavero al eliminar su aplicación.

+2

Así que el hecho de que no quiero que la información permanezca en el llavero después de la desinstalación de la aplicación podría implicar que el llavero es simplemente un lugar incorrecto para almacenarlo, ¿verdad? – Vladimir

+7

@Mihai Los elementos de Damian * se pueden * compartir entre aplicaciones, pero no de forma predeterminada; tienes que establecer grupos de acceso. – James

+0

Es así como se implementa UIPasteboard. Privado pero compartido –

1

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

Esto es un cambio intencionado 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 una parte del contrato de API que los elementos de llavero creados por una aplicación sobrevivirían cuando se elimine la aplicación. Esto tiene siempre ha sido un detalle de implementación.

Ver el reference here.

Cuestiones relacionadas