Hay un artículo sobre cómo asegurarse de que nunca pierda el UUID generado, incluso para iOS 5 y posteriores con KeyChain. blog.onliquid.com/…
jasoares
Respuestas:
323
[[UIDevice currentDevice] uniqueIdentifier]
Devuelve la ID única de tu iPhone.
EDITAR: -[UIDevice uniqueIdentifier]ahora está en desuso y las aplicaciones están siendo rechazadas de la App Store por usarlo. El siguiente método es ahora el enfoque preferido.
Si necesita crear varios UUID, simplemente use este método (con ARC):
[[UIDevice currentDevice] uniqueIdentifier] ha quedado en desuso a partir de iOS 5, y Apple ahora rechaza las aplicaciones que lo usan (a partir de marzo de 2012). El resto de la respuesta sigue siendo precisa.
Gorm
13
Después de haber abordado esta pregunta durante un tiempo, estoy bastante seguro de que la pregunta original no se refería al identificador único del dispositivo, sino a obtener un identificador único general útil para algo.
Ryan McCuaig
12
Para que este ARC sea compatible, debe emitir el objeto de cadena y eliminar la llamada de liberación automática. En otras palabras, agregue el reparto: NSString * string = (__bridge_transfer NSString *) CFUUIDCreateString (NULL, theUUID);
Paul de Lange
65
A partir de iOS 6 puede usar: NSString * UUID = [[NSUUID UUID] UUIDString];
Simétrico
1
Si uso [[NSUUID UUID] UUIDString]; en iOS7 y superior, ¿Apple no rechazará mi aplicación?
Whoami
100
Aquí está el código simple que estoy usando, compatible con ARC.
Honestamente, esta debería ser la respuesta aceptada, la pregunta original pedía un generador de GUID o UUID, y todos respondieron con cómo obtener el UDID del teléfono. Un identificador único universal (UUID) y un identificador único de dispositivo (UDID) no son lo mismo.
Joe
1
aquí hay una línea recta NSString * UUID = [[NSUUID UUID] UUIDString];
Esta es, con mucho, la solución más simple. Si no tiene que soportar antes de iOS 6, use esto. Estaba usando ID permanentes generados por datos centrales, pero esto es mucho mejor. +1
Sean
Perfecto, gracias por esto! Esta es mi respuesta +1 para el día :)
justinhartman
Cambia cada vez que ejecuto la aplicación en el simulador.
Gajendra K Chauhan
46
Al revisar la documentación del desarrollador de Apple, encontré que el objeto CFUUID está disponible en el iPhone OS 2.0 y posterior.
Eso devuelve un identificador único para el proceso. No tiene semejanza con un GUID. De los documentos: "La identificación incluye el nombre de host, la identificación del proceso y una marca de tiempo, lo que garantiza que la identificación sea única para la red"
Matt Spradley,
Podrías estar en lo cierto. Es una línea pragmática, y probablemente no sea tan resistente a las balas como CFUUID. Cualquiera que necesite el mayor rigor debería ir a CoreFoundation.
Respuestas:
Devuelve la ID única de tu iPhone.
Si necesita crear varios UUID, simplemente use este método (con ARC):
EDITAR: 29 de enero de 2014: si está apuntando a iOS 6 o posterior, ahora puede usar el método mucho más simple:
fuente
Aquí está el código simple que estoy usando, compatible con ARC.
fuente
En iOS 6 puedes usar fácilmente:
Más detalles en las Documentaciones de Apple
fuente
Al revisar la documentación del desarrollador de Apple, encontré que el objeto CFUUID está disponible en el iPhone OS 2.0 y posterior.
fuente
En Swift :
fuente
La técnica más simple es usar
NSString *uuid = [[NSProcessInfo processInfo] globallyUniqueString]
. Consulte la referencia de clase NSProcessInfo .fuente
En Swift 3.0
fuente
He subido mi implementación simple pero rápida de una clase Guid para ObjC aquí: obj-c GUID
También puede analizar hacia y desde varios formatos de cadena.
fuente