usar tutorial mundo hola español desarrollador cuenta crear configurar conectar con como apple swift ios8 uuid uniqueidentifier

tutorial - ¿Cómo obtener una ID de dispositivo única en Swift?



swift xcode (7)

¿Cómo puedo obtener una identificación única de dispositivos en Swift?

Necesito una identificación para usar en la base de datos y como clave API para mi servicio web en mi aplicación social. Algo para realizar un seguimiento del uso diario de estos dispositivos y limitar sus consultas a la base de datos.

¡Gracias!


He intentado con

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

en lugar

let UUID = NSUUID().UUIDString

y funciona.


Para el último código de trabajo de Swift 3.X , uso fácil;

let deviceID = UIDevice.current.identifierForVendor!.uuidString print(deviceID)


Puede usar la comprobación de dispositivos (en Swift 4) Documentación de Apple

func sendEphemeralToken() { //check if DCDevice is available (iOS 11) //get the **ephemeral** token DCDevice.current.generateToken { (data, error) in guard let data = data else { return } //send **ephemeral** token to server to let token = data.base64EncodedString() //Alamofire.request("https://myServer/deviceToken" ... } }

Uso típico:

Por lo general, utiliza las API de DeviceCheck para asegurarse de que un nuevo usuario no haya canjeado una oferta con un nombre de usuario diferente en el mismo dispositivo.

La acción del servidor necesita:

Ver WWDC 2017 - Sesión 702

más del artículo de Santosh Botre - Identificador único para dispositivos iOS

Su servidor asociado combina este token con una clave de autenticación que recibe de Apple y utiliza el resultado para solicitar acceso a los bits por dispositivo.


Puede usar la propiedad pública identifierForVendor presente en la clase UIDevice

let UUIDValue = UIDevice.currentDevice().identifierForVendor!.UUIDString print("UUID: /(UUIDValue)")

EDITAR Swift 3:

UIDevice.current.identifierForVendor!.uuidString

EDICIÓN FINAL


Puedes usar esto (Swift 3):

UIDevice.current.identifierForVendor!.uuidString

Para versiones anteriores:

UIDevice.currentDevice().identifierForVendor

o si quieres una cadena:

UIDevice.currentDevice().identifierForVendor!.UUIDString


Ya no hay una manera de identificar de forma exclusiva un dispositivo después de que el usuario desinstaló las aplicaciones. La documentación dice:

El valor en 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 posteriormente reinstala una o más de ellas.


También puede leer este artículo de Mattt Thompson para obtener más detalles:
http://nshipster.com/uuid-udid-unique-identifier/

Actualización para Swift 4.1 , deberá usar:

UIDevice.current.identifierForVendor?.uuidString


Swift 2.2

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { let userDefaults = NSUserDefaults.standardUserDefaults() if userDefaults.objectForKey("ApplicationIdentifier") == nil { let UUID = NSUUID().UUIDString userDefaults.setObject(UUID, forKey: "ApplicationIdentifier") userDefaults.synchronize() } return true } //Retrieve print(NSUserDefaults.standardUserDefaults().valueForKey("ApplicationIdentifier")!)


class func uuid(completionHandler: @escaping (String) -> ()) { if let uuid = UIDevice.current.identifierForVendor?.uuidString { completionHandler(uuid) } else { // If the value is nil, wait and get the value again later. This happens, for example, after the device has been restarted but before the user has unlocked the device. // https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor?language=objc DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { uuid(completionHandler: completionHandler) } } }