Erstellen Sie Ihre eigene UUID und speichern Sie sie dann im Schlüsselbund. So bleibt sie erhalten, auch wenn Ihre App deinstalliert wird. In vielen Fällen bleibt sie auch dann erhalten, wenn der Benutzer zwischen Geräten wechselt (z. B. vollständige Sicherung und Wiederherstellung auf einem anderen Gerät).
Sie wird damit zu einem einzigartigen Benutzerkennwort soweit es Sie betrifft. (sogar besser als Gerät Bezeichner).
Ejemplo:
Ich definiere eine benutzerdefinierte Methode zur Erstellung einer UUID
als:
- (NSString *)createNewUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
Sie können sie dann in KEYCHAIN
beim allerersten Start Ihrer App. So können wir sie nach dem ersten Start einfach aus dem Schlüsselbund verwenden und müssen sie nicht neu generieren. Der Hauptgrund für die Verwendung des Schlüsselbundes zum Speichern ist: Wenn Sie die UUID
in den Schlüsselbund gespeichert hat, bleibt sie auch dann erhalten, wenn der Benutzer die App vollständig deinstalliert und dann erneut installiert. . Dies ist also die dauerhafte Art der Speicherung, was bedeutet, dass der Schlüssel immer eindeutig ist.
#import "SSKeychain.h"
#import <Security/Security.h>
Fügen Sie beim Start der Anwendung den folgenden Code ein:
// getting the unique key (if present ) from keychain , assuming "your app identifier" as a key
NSString *retrieveuuid = [SSKeychain passwordForService:@"your app identifier" account:@"user"];
if (retrieveuuid == nil) { // if this is the first time app lunching , create key for device
NSString *uuid = [self createNewUUID];
// save newly created key to Keychain
[SSKeychain setPassword:uuid forService:@"your app identifier" account:@"user"];
// this is the one time process
}
Laden Sie die Dateien SSKeychain.m und .h von sskeychain und ziehen Sie die Dateien SSKeychain.m und .h in Ihr Projekt und fügen Sie "Security.framework" zu Ihrem Projekt hinzu. Um anschließend UUID zu verwenden, verwenden Sie einfach :
NSString *retrieveuuid = [SSKeychain passwordForService:@"your app identifier" account:@"user"];