verificar verificacion seguida puedo llega escribe cuenta contraseña codigo apple ios iphone objective-c uniqueidentifier

verificacion - Obtenga siempre una identificación de dispositivo única en iOS 7



no puedo verificar mi id de apple (7)

¿Hay aplicaciones adicionales del mismo proveedor instaladas en dispositivos iOS7? De acuerdo con los docs :

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 serlo al instalar compilaciones de prueba usando Xcode o al instalar una aplicación en un dispositivo usando 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.

¿Proporcionas la aplicación a través de la AppStore? Si no:

Si la aplicación no se instaló desde la tienda de aplicaciones (como cuando la aplicación aún está en desarrollo), el proveedor se determina en función de la ID del paquete de la aplicación. Se supone que el ID del paquete está en formato de DNS inverso, y los primeros dos componentes se utilizan para generar un ID de proveedor. Por ejemplo, com.example.app1 y com.example.app2 parecerían tener el mismo ID de proveedor.

Nuestra aplicación iOS es para usuarios específicos. Entonces, usamos 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 devuelve valores diferentes y estamos teniendo problemas con la identificación del usuario. iOS 7 proporciona la siguiente alternativa .

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

Reemplazamos uniqueIdentifier con identifierForVendor y creamos una compilación Ad-hoc. Luego instalamos la compilación tanto en dispositivos iOS 7 como iOS 6. Hasta el momento en iOS 7, estamos obteniendo el mismo valor cada vez, pero iOS 6 da diferentes valores cada vez que eliminamos y reinstalamos la aplicación.


De la referencia de clase de UIDevice para identifierForVendor :

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 serlo al instalar compilaciones de prueba usando Xcode o al instalar una aplicación en un dispositivo usando 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.


Intente borrar el caché de la aplicación en su máquina y luego verifique. Puede ser tu problema de caché


Para agregar algo a la respuesta de nerowolfe , hay un gran contenedor de llaveros llamado MCSMKeychainItem , que además de varias otras cosas, le permite generar y recuperar ID de dispositivo único con una sola línea de código:

[MCSMApplicationUUIDKeychainItem applicationUUID];

por lo que el uso básico será algo así como

+ (NSString *)deviceId { // load unique device ID or generate new one return [MCSMApplicationUUIDKeychainItem applicationUUID]; }

Funciona sobre la base de Keychain, donde almacena el identificador único generado una vez (como sugirió nerowolf). Es de código abierto y puedes descargarlo aquí en github .

Nota: no soy el autor de la extensión, ni tampoco la conozco de ninguna manera.


Si no hay otras aplicaciones firmadas por usted instaladas en el dispositivo, está bien que el identificador del proveedor cambie. Además, el identificador del proveedor puede cambiar si instala su aplicación a través de diferentes métodos de distribución, es decir. la aplicación puede no tener el mismo identificador para el proveedor cuando se instala a través de XCode y cuando se distribuye a través de TestFlight u HockeyApp.


Utilice este pequeño método de ayuda para mantener el identificador en Keychain entre las sesiones de instalación / eliminación de la aplicación

-(NSString *)getUniqueDeviceIdentifierAsString { NSString *appName=[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey]; NSString *strApplicationUUID = [SSKeychain passwordForService:appName account:@"incoding"]; if (strApplicationUUID == nil) { strApplicationUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; [SSKeychain setPassword:strApplicationUUID forService:appName account:@"incoding"]; } return strApplicationUUID; }

Agregue la biblioteca SSKeychain a su proyecto, por ejemplo, a través de Cocoapods con el pod ''SSKeychain''


¿Con qué UDID se reemplaza?

Por ahora, parece que Apple planea reemplazar los UDID con dos identificadores diferentes: ID de vendedor e ID de publicidad.

ID de vendedor

ID que es idéntico entre las aplicaciones del mismo desarrollador. Borrado con la eliminación de la última aplicación para esa ID de equipo.

ID de publicidad

Único para el dispositivo. Disponible para todas las aplicaciones; utilizado para publicidad: iAd ha convertido desde UDID para iOS 6 y versiones posteriores. Restablecer con "Borrar todo el contenido y la configuración".


En su mayor parte, las ID de proveedores permitirán a los desarrolladores con múltiples aplicaciones identificarlo como el mismo usuario en todas sus aplicaciones. Esto puede ayudar a los desarrolladores a comprender mejor a su audiencia y brindar un mejor servicio.

Los ID publicitarios seguirán creando un identificador único para el dispositivo, pero a diferencia del UDID, esto se puede desactivar o restablecer, al igual que las cookies se pueden controlar en el navegador de su computadora de escritorio o portátil.

Con el anuncio de iOS7 a principios de esta semana, Apple dio un paso adicional, que consistía en desactivar otro identificador único: la "Dirección MAC" que los desarrolladores de aplicaciones y las compañías de publicidad podrían usar en lugar de la nueva ID de publicidad. Al cerrar esta brecha, Apple está tomando el buen paso de forzar a estas compañías a usar solo un identificador de aplicación cruzada que los usuarios pueden controlar.

Lo que queda por ver es si las compañías objetivo continuarán buscando formas de eludir el mandato de Apple. Se han desarrollado otras tecnologías, como "huellas dactilares del dispositivo", para identificar de manera única su dispositivo fuera del marco de Apple. Si Apple tomará medidas enérgicas contra estos métodos aún está por verse.