Il y a un article sur la façon de vous assurer de ne jamais perdre cet UUID généré, même pour iOS 5 et versions ultérieures à l'aide de KeyChain. blog.onliquid.com/…
jasoares
Réponses:
323
[[UIDevice currentDevice] uniqueIdentifier]
Renvoie l'ID unique de votre iPhone.
EDIT: -[UIDevice uniqueIdentifier]est désormais obsolète et les applications sont rejetées de l'App Store pour son utilisation. La méthode ci-dessous est désormais l'approche privilégiée.
Si vous devez créer plusieurs UUID, utilisez simplement cette méthode (avec ARC):
[[UIDevice currentDevice] uniqueIdentifier] est obsolète depuis iOS 5, et Apple rejette désormais les applications qui l'utilisent (depuis mars 2012). Le reste de la réponse est toujours précis.
Gorm
13
Après avoir été autour de cette question pendant un certain temps, je suis presque sûr que la question d'origine ne portait pas sur l'identifiant unique de l'appareil, mais sur l'obtention d'un identifiant unique général utile pour quelque chose.
Ryan McCuaig
12
Pour rendre cet ARC compatible, vous devez convertir l'objet chaîne et supprimer l'appel à libération automatique. En d'autres termes, ajoutez le transtypage: NSString * string = (__bridge_transfer NSString *) CFUUIDCreateString (NULL, theUUID);
Honnêtement, cela devrait être la réponse acceptée, la question d'origine demandée pour un générateur GUID ou UUID, et tout le monde a répondu comment obtenir l'UDID du téléphone. Un identificateur universel unique (UUID) et un identifiant unique de périphérique (UDID) ne sont pas la même chose.
Joe
1
voici une ligne droite NSString * UUID = [[NSUUID UUID] UUIDString];
C'est de loin la solution la plus simple. Si vous n'avez pas à prendre en charge avant iOS 6, utilisez-le. J'utilisais des identifiants permanents générés par les données de base, mais c'est beaucoup mieux. +1
Sean
Parfait, merci pour ça! Ceci est ma réponse +1 pour la journée :)
justinhartman
Cela change à chaque fois que je lance l'application dans le simulateur.
Gajendra K Chauhan
46
En examinant la documentation Apple Developer, j'ai trouvé que l' objet CFUUID est disponible sur l'iPhone OS 2.0 et versions ultérieures.
La technique la plus simple est d'utiliser NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]. Voir la référence de classe NSProcessInfo .
Cela renvoie un identifiant unique pour le processus. Il n'a aucune ressemblance avec un GUID. D'après les documents: "L'ID comprend le nom d'hôte, l'ID de processus et un horodatage, ce qui garantit que l'ID est unique pour le réseau"
Matt Spradley
Tu pourrais avoir raison. C'est une doublure pragmatique, et n'est probablement pas aussi à l'épreuve des balles que CFUUID. Quiconque a besoin d'une plus grande rigueur doit se rendre à CoreFoundation.
Réponses:
Renvoie l'ID unique de votre iPhone.
Si vous devez créer plusieurs UUID, utilisez simplement cette méthode (avec ARC):
EDIT: 29 janvier 2014: si vous ciblez iOS 6 ou une version ultérieure, vous pouvez désormais utiliser la méthode beaucoup plus simple:
la source
Voici le code simple que j'utilise, conforme à ARC.
la source
Dans iOS 6, vous pouvez facilement utiliser:
Plus de détails dans les documentations d'Apple
la source
En examinant la documentation Apple Developer, j'ai trouvé que l' objet CFUUID est disponible sur l'iPhone OS 2.0 et versions ultérieures.
la source
Dans Swift :
la source
La technique la plus simple est d'utiliser
NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. Voir la référence de classe NSProcessInfo .la source
Dans Swift 3.0
la source
J'ai téléchargé mon implémentation simple mais rapide d'une classe Guid pour ObjC ici: obj-c GUID
Il peut également analyser différents formats de chaîne.
la source