ios - obtener - udid iphone without itunes
¿Cómo puedo recuperar el UDID en iOS? (10)
En IOS5 y superior, use este para encontrar UDID
NSString * uuidString = nil;
CFUUIDRef uuid = CFUUIDCreate (NULL); ...
Creo que está mostrando cómo generar un número de identificación único, no para obtener la identificación única de un dispositivo.
Me preguntaba si fue posible descubrir el UDID del iPhone del usuario. ¿Alguien puede arrojar algo de luz?
¿Qué le parece usar [OpenUDID] lib https://github.com/ylechelle/OpenUDID
Como algunos dijeron, en iOS5 esto ha quedado en desuso:
NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];
Apple ahora tiene 3 API para obtener un UUID (Universally Unique Identifier) del dispositivo:
Alternativa 1 (clase NSUUID):
NSString *udid = [[NSUUID UUID] UUIDString];
Alternativa 2 (clase de UIDevice):
NSString *udid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
Alternativa 3 (clase ASIdentifierManager, requiere el marco AdSupport):
NSUUID *UUID = [[ASIdentifierManager sharedManager] advertisingIdentifier];
NSString *udid = [UUID UUIDString];
Pero todos son alfanuméricos, y el identificador único de un dispositivo típico solo tiene dígitos. Entonces, esas 3 API son inútiles, y el antiguo [[UIDevice currentDevice] uniqueIdentifier] aún funciona en iOS6, pero ¿por cuánto tiempo?
Si la advertencia "obsoleta" te molesta, simplemente agrega:
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
¡Espero eso ayude!
En IOS5 y superior, use este para encontrar UDID
NSString *uuidString = nil;
CFUUIDRef uuid = CFUUIDCreate(NULL);
if (uuid) {
uuidString = (__bridge NSString *)CFUUIDCreateString(NULL, uuid);
CFRelease(uuid);
}
NSLog(@"UDID: [%@]", uuidString);
Es muy sencillo. Vaya a Xcode Window y seleccione Devices o puede encontrarlo en Organizer.
http://www.raywenderlich.com/2915/ios-code-signing-under-the-hood/organizerudid
La mejor manera es hacerlo así
NSString *udid = [[[UIDevice currentDevice]identifierForVendor]UUIDString];
No puedo comentar, pero me gustaría advertir a los demás. En respuesta a DZenBot, todos los métodos no están dando los mismos resultados:
Alternativa 1 (clase NSUUID):
NSString *udid = [[NSUUID UUID] UUIDString];
Alternativa 2 (clase UIDevice) (Disponible en iOS 6.0 y posterior):
NSString *udid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
La Alternativa 1 genera un UUID aleatorio mientras que la Alternativa 2 proporciona un UID fijo que no cambiará.
En su lugar, debe usar los nuevos métodos identifierForVendor
y advertisingIdentifier
en iOS 6+ para acceder a esto. Ver publicación relacionada aquí para más detalles.
De manera antigua (en desuso y dará como resultado el rechazo de la tienda de aplicaciones)
NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];
A partir de iOS7, la propiedad uniqueIdentifier
ya no está disponible.
Ver la referencia de UIDevice
.
Recuerde que UDID está en desuso en IOS 5. En iOS 7, Apple ahora siempre devuelve un valor fijo cuando consulta el MAC para frustrar específicamente el MAC como base para un esquema de ID . Entonces, realmente debería usar - [UIDevice identifierForVendor] o crear un UUID por instalación. Espero que ayude a alguien.
Vale la pena mencionar que el identificadorForVendor no es exclusivo para un dispositivo, puede cambiar y eventualmente cambiará.
Apple dice esto sobre identifierForVendor :
El valor de esta propiedad es el mismo para las aplicaciones que provienen del mismo proveedor que se ejecuta en el mismo dispositivo. Se devuelve un valor diferente para las aplicaciones en el mismo dispositivo que provienen de diferentes proveedores y para las aplicaciones en diferentes dispositivos, independientemente del proveedor.
Si el valor es nulo, espere y obtenga el valor nuevamente más tarde. Esto sucede, por ejemplo, después de que el dispositivo se haya reiniciado pero antes de que el usuario haya desbloqueado el dispositivo.
El valor de esta propiedad permanece igual mientras la aplicación (u otra aplicación del mismo proveedor) está instalada en el dispositivo iOS. El valor cambia cuando el usuario elimina todas las aplicaciones de ese proveedor del dispositivo y luego reinstala una o más de ellas. El valor también puede cambiar al instalar compilaciones de prueba con Xcode o al instalar una aplicación en un dispositivo mediante distribución ad-hoc. Por lo tanto, si su aplicación almacena el valor de esta propiedad en cualquier lugar, debe manejar con elegancia las situaciones donde el identificador cambia.
Pero lo que es aún peor, es que parece que Apple también está eliminando el último recurso de usar la dirección MAC como identificador único, de acuerdo con este Blog de AVG .
Entonces, ¿qué hacer ahora, si queremos identificar de manera única los dispositivos, por ej. para licencias, configuraciones u otros propósitos ??