2012-03-09 20 views
16

Duplicar posibles:
UIDevice uniqueIdentifier Deprecated - What To Do Now?alternativa al iPhone ID del dispositivo (UDID)

Aunque Apple no estaba en el MWC de Barcelona (Mobile World Congress), no fue la certeza de que conseguir la deviceID quedará obsoleto en el iOS SDK adicional.

No entiendo por qué Apple quiere restringir esto, pero ese no es el tema.

Debo preparar mi aplicación para una alternativa porque mis usuarios son identificados y conocidos por un mejor uso de mi aplicación (no es necesario iniciar sesión o crear una cuenta, por ejemplo). Y estoy seguro de que no estoy solo en ese caso.

¿Alguien sabe una alternativa de obtener el deviceID? ¿Hay otro identificador único, como la dirección MAC, por ejemplo? ¿Cómo preparas tu aplicación?

+0

¿quieres la id del dispositivo iphone o la otra? –

+0

Quiero otro identificador único que deviceId u otra forma de identificar al usuario. – Martin

Respuesta

5

ACTUALIZACIÓN

Qué acerca del uso CFUUID para generar un UUID. Puede que almacenarlo en LLAVERO en la primera puesta en marcha .. lo puede conseguir así ...

NSString *uuid = nil; 
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault); 
if (theUUID) { 
    uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID)); 
    [uuid autorelease]; 
    CFRelease(theUUID); 
} 

y también por el método deprecating uniqueIdentifier, Apple está sugiriendo que no se identifica por dispositivo, sino por instalación de la aplicación. Puede ser que mañana decidan rechazar tu aplicación por hacer esto ...:/ esperando que esto ayude.

+0

Gracias, pero no sería lo mismo si el usuario elimina e instala nuevamente la aplicación (que, lo admito, no ocurre a menudo). Otra cosa, este UUID se genera en una máquina, por lo que puede no ser único a través de nuestra lista de usuarios en nuestro servidor. – Martin

+0

@Martin ¿Qué tal almacenar el valor en llavero ...? eso no desaparecerá una vez que la aplicación se desinstala ...? y también desaprobando el método uniqueIdentifier, Apple sugiere que no identifiques por dispositivo sino por instalación de la aplicación. Puede ser que mañana decidan rechazar tu aplicación por hacer esto ...:/ –

+0

@Martin, por favor revisa la actualización. –

2

probar esto

- (NSString *)getDeviceID 
{ 
    NSString *uuid = [self gettingString:@"uniqueAppId"]; 
    if(uuid==nil || [uuid isEqualToString:@""]) 
    { 
     CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault); 
     if (theUUID) 
     { 
      uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID)); 
      [self savingString:@"uniqueAppId" data:uuid]; 
      [uuid autorelease]; 
      CFRelease(theUUID); 
     } 
    } 
    return uuid; 

// this is depreciated 
// UIDevice *device = [UIDevice currentDevice]; 
// return [device uniqueIdentifier]; 
} 
+0

Gracias, son las mismas respuestas que a continuación. Ver mi comentario – Martin

+0

, entonces tiene que usar la dirección MAC del dispositivo – hchouhan02

2

Por favor poner en práctica la nueva lógica para obtener UDID.it seguro es proporcionada por Terceros

Learn about free solution:

Esto realmente funciona bien y es fácil de implememt sin hacer un alboroto para reemplazar el método obsoleto.

+0

Gracias por el enlace. Hay varias API de UID que están creciendo en la web. No probé ninguno de ellos todavía. – Martin

+0

El enlace está roto –

+0

Hola Andre He actualizado el enlace. – Shantanu

Cuestiones relacionadas