Créez votre propre UUID, puis stockez-le dans le trousseau de clés. Ainsi, il persiste même lorsque votre application est désinstallée. Dans de nombreux cas, il est également conservé même si l'utilisateur migre d'un appareil à l'autre (par exemple, en cas de sauvegarde complète et de restauration sur un autre appareil).
En effet, il devient un unique identifiant de l'utilisateur en ce qui vous concerne. (encore mieux que dispositif identifiant).
Exemple :
Je suis en train de définir une méthode personnalisée pour créer un UUID
comme :
- (NSString *)createNewUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
Vous pouvez ensuite le stocker dans KEYCHAIN
lors du tout premier lancement de votre application. Ainsi, après le premier lancement, nous pouvons simplement l'utiliser à partir du trousseau de clés, sans avoir besoin de le régénérer. La principale raison d'utiliser le trousseau pour stocker est : Lorsque vous définissez le UUID
dans le trousseau, il persistera même si l'utilisateur désinstalle complètement l'application et l'installe à nouveau. . C'est donc la façon permanente de la stocker, ce qui signifie que la clé sera toujours unique.
#import "SSKeychain.h"
#import <Security/Security.h>
Sur le lancement de l'application, inclure le code suivant :
// 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
}
Téléchargez le fichier SSKeychain.m et .h à partir de sskeychain et faites glisser les fichiers SSKeychain.m et .h dans votre projet et ajoutez "Security.framework" à votre projet. Pour utiliser l'UUID ensuite, utilisez simplement :
NSString *retrieveuuid = [SSKeychain passwordForService:@"your app identifier" account:@"user"];
1 votes
Pour les applications qui utilisent toujours uniqueIdentifier, iOS7 renvoie maintenant FFFFFFFF + identifierForVendor, ce qui casse un grand nombre d'applications d'abonnement non renouvelable mal écrites.
0 votes
Si par chance votre application utilise les notifications push, vous pouvez utiliser le jeton renvoyé par le service push d'Apple, il est également unique pour chaque appareil.
0 votes
@CalinChitu Si l'utilisateur n'accepte pas les notifications push, obtenez-vous quand même un pushID pour cet utilisateur ?