2013-05-02 23 views
36

sto testando il flusso di login (utilizzando KeychainItemWrapper) dentro la mia applicazione su un dispositivo. Come faccio a ripristinare/cancellare il portachiavi per la mia app?Ripristina portachiavi sul dispositivo

sul simulatore, lo faccio cliccando sul simulatore iOS -> Ripristino contenuto e impostazioni ....

+0

Eventuali duplicati di http://stackoverflow.com/questions/7142774/reset-an-iphone-apps-keychain –

+2

@ DanielMartín La domanda si sta collegando to è reimpostare il portachiavi a livello di codice (cosa che faccio nella mia app). Voglio sapere come farlo manualmente per gli scopi di test. – syntagma

+1

L'unico modo che conosco per ottenere questo è dal dispositivo Impostazioni, Generale, Ripristina, Ripristina tutte le impostazioni. Reimposterà il portachiavi per ogni app installata sul dispositivo. –

risposta

7

elementi del portachiavi sono in iOS sandbox, gli utenti non hanno accesso per rimuovere voce di portachiavi indesiderati. Questi sono accessibili solo tramite API.

KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:[[NSBundle mainBundle] bundleIdentifier] accessGroup:nil]; 

// o come si accede portachiavi

[keychainItem resetKeychainItem]; 

oppure è possibile ripristinare il dispositivo >> dalle impostazioni del dispositivo, Generali, Ripristina, Ripristina impostazioni. Ma, si ripristinerà il portachiavi per ogni applicazione installata sul dispositivo.

+0

Ripristina tutte le impostazioni non ripristina il portachiavi. Le password WiFi sono state cancellate, ma la mia password VPN e la password app memorizzate in Keychain sono rimaste. –

+3

Si dovrebbe fare "Cancellare tutti i contenuti e le impostazioni" per cancellare il portachiavi. –

+0

@Fahri, Come faccio a "Cancellare tutti i contenuti e le impostazioni" invece di "Ripristina contenuto e impostazioni"? –

1
  • Scaricare e aggiungere keychainWrapper dal here nel progetto.
  • Scrivi seguente codice nella viewController si desidera portachiavi reset.

CODICE:

#import "KeychainItemWrapper.h" 

@interface YourViewController() 
{ 
    KeychainItemWrapper *keychainItemWrapper; 
} 

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"appname" accessGroup:nil]; 

} 

- (IBAction)logoutButtonPressed:(id)sender { 

    [keychainItemWrapper resetKeychainItem]; 

} 
1

è possibile scaricare i dati portachiavi utilizzando portachiavi dumper. Prendi il seguente link https://github.com/ptoomey3/Keychain-Dumper

Basta andare a questo URL e scaricare il file zip e decomprimerlo. All'interno di questa cartella, l'unico file che ci interessa è il binario keychain_dumper. Le informazioni a cui è consentito l'accesso da un'applicazione nel portachiavi sono specificate nelle autorizzazioni. Questo binario è firmato con un certificato firmato di auto con diritti jolly e quindi è in grado di accedere a tutti gli elementi del portachiavi. Potrebbero esserci anche altri modi per assicurarsi che tutte le informazioni sul portachiavi siano garantite, come se il file dei diritti includesse tutti i gruppi di accesso portachiavi o utilizzando un gruppo di accesso a un portachiavi specifico che fornisce l'accesso a tutti i dati del portachiavi. Ad esempio, uno strumento Keychain-viewer utilizza i seguenti diritti.

com.apple.keystore.access-portachiavi-keys

com.apple.keystore.device

1) Basta caricare questo binario nel dispositivo nella cartella/tmp e assicurarsi che il suo eseguibile.

2) Ora assicurarsi che il file di database portachiavi memorizzato nella posizione /private/var/Keychains/keychain-2.db è leggibile mondo.

3) Ora vai al terminale e si può scaricare i dati dal comando

passando .keychain_dumper

4) sopra il comando elencherà giù tutto il nome utente e la password. ma in alto scaricherà solo le password generiche e di Internet. È possibile visualizzare le informazioni sull'utilizzo utilizzando il comando "-h".

5) È possibile scaricare tutte le informazioni utilizzando il comando "-a".

Puoi leggere ulteriori informazioni e per esempio qui dumping keychain data

Problemi correlati