¿Cómo obtener una identificación única en el dispositivo iOS?

He usado la dirección MAC para identificar dispositivos iOS en el lado del servidor. Cuando ejecuto mi aplicación con iOS 7, no puedo recuperar la dirección MAC correcta. Alternativamente usé

NSUUID *oNSUUID = [[UIDevice currentDevice] identifierForVendor]; [strApplicationUUID setString:[oNSUUID UUIDString]]; 

propiedad. Pero este valor también cambió después de cada nueva instalación de la aplicación. ¿Ahora quiero detectar un dispositivo particular en el lado del servidor? ¿Cómo puedo obtener una identificación única por dispositivo en iOS?

Ya no puede obtener una identificación única por dispositivo. identifierForVendor es lo mejor que vas a obtener. Apple ha deshabilitado sistemáticamente la identificación de un dispositivo específico para que los vendedores no puedan pasar las identificaciones de los usuarios.

La mejor forma de obtener la ID del dispositivo es identifierForVendor

 UIDevice *device = [UIDevice currentDevice]; NSString *currentDeviceId = [[device identifierForVendor]UUIDString]; 

Obtener ID de dispositivo en

Swift 3

 let device_id = UIDevice.currentDevice().identifierForVendor?.UUIDString 

Swift 4:

 let device_id = UIDevice.current.identifierForVendor!.uuidString 

Obtener ID del dispositivo en Swift 3.x

 let deviceId = UIDevice.current.identifierForVendor?.uuidString 

Puede usar esta lib: https://github.com/fabiocaccamo/FCUUID

Mire la tabla en la sección Persistencia. uuidForDevice cubrirá la mayoría de los casos necesarios y es el mejor reemplazo para udid de versiones anteriores de iOS.

Los ejemplos en Readme están en Objective-C pero también funcionan con Swift. Lo he usado desde el primer lanzamiento de Swift hasta ahora (Swift 4.1).