identifierforvendor ios objective-c ios7 uniqueidentifier

identifierforvendor - iOS7-Identificador único del dispositivo



swift get uuid (2)

Esta pregunta ya tiene una respuesta aquí:

Nuestra aplicación iOS es para usuarios específicos. Por lo tanto, utilizamos el identificador único del dispositivo para la identificación del usuario. Este enfoque funciona bien hasta iOS 6, porque estamos obteniendo el mismo valor cada vez.

NSString *strUniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier];

En iOS 7, el método anterior está ajustando diferentes valores y estamos teniendo problemas en la identificación del usuario. iOS 7 apis proporcionar alternativa siguiente.

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

Reemplacé "uniqueIdentifier" con "identifierForVendor", y creé una compilación Ad hoc. Instalación instalada en dispositivos iOS 7 y iOS 6. En iOS 7, hasta ahora, obtengo el mismo valor cada vez, pero iOS 6 da valores diferentes cada vez que borramos y reinstalamos la aplicación.

Actualmente la aplicación no está disponible en la tienda de aplicaciones. Así que no estoy seguro de cómo funciona esta API para la construcción de la tienda de aplicaciones.

Preguntas: 1) Para la aplicación appstore, ¿"identifierForVendor" devuelve el mismo valor para iOS 7 cada vez? ¿O puede cambiar cuando el usuario elimine y reinstale la aplicación en el futuro? 2) ¿Hay alguna otra alternativa disponible para el "identificador único" en iOS 7 apis, que devuelva los mismos valores para iOS 6 y 7? 3) Cualquier otra sugerencia ...


3) Cualquier otra sugerencia ...

Debe considerar estrategias para identificar y autorizar al usuario en lugar del dispositivo. Dependiendo de un identificador específico del dispositivo, se evita que los usuarios autorizados cambien de dispositivo sin algún tipo de interacción con el administrador, y permite el acceso de usuarios no autorizados si encuentran / roban / piden prestado un dispositivo autorizado. Puede evitar estos problemas confiando en las credenciales de usuario en lugar de identificadores de dispositivo.


Como se puede ver en la documentación aquí :

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 sin importar el proveedor.

El valor de esta propiedad puede ser nulo si la aplicación se ejecuta en segundo plano, antes de que el usuario haya desbloqueado el dispositivo la primera vez después de que el dispositivo se haya reiniciado. Si el valor es nulo, espere y obtenga el valor nuevamente más tarde.

El valor en esta propiedad permanece igual mientras la aplicación (u otra aplicación del mismo proveedor) se instala en el dispositivo iOS. El valor cambia cuando el usuario elimina todas las aplicaciones de ese proveedor del dispositivo y, posteriormente, vuelve a instalar una o más de ellas. Por lo tanto, si su aplicación almacena el valor de esta propiedad en cualquier lugar, debe manejar con gracia las situaciones en las que cambia el identificador.

En resumen, el identificador de un proveedor en particular seguirá siendo el mismo si al menos una aplicación de ese proveedor permanece en el dispositivo. Una vez que no quedan más aplicaciones (o en el caso de una sola aplicación, se vuelve a instalar), el identificador puede y cambiará. Por lo que sé, no debería haber una diferencia entre iOS 6 y iOS 7, por lo que cualquier diferencia que veas es una coincidencia.