2011-04-08 10 views
15

Estoy trabajando en una aplicación de iPhone que se comunica con un servidor para almacenar e intercambiar datos. Como me gustaría hacerlo lo más simple posible, quiero evitar el registro (o mybe también el uso de una contraseña) para la cuenta de usuario. ¿Es posible (y permitido?) Obtener el UDID del dispositivo iPhone y hacer, por ejemplo. un MD5-hash de él, que transfiero al servidor y lo uso para la autentificación? Dado que este ID es único, simplemente podría usarlo para iniciar sesión y obtener los datos especificados por el usuario desde el servidor, sin necesidad de crear datos de inicio de sesión.Uso de UDID para crear una identidad de usuario única

¿Está permitido acceder al UDID, hacer un MD5-hash y almacenarlo en una base de datos?

La segunda pregunta es: ¿cómo obtengo el UDID? ;-)

Respuesta

15

Sí, está permitido, pero tener en cuenta lo que he reportado a continuación, a partir de la documentación.

Puede recuperar el UDID de la siguiente manera:

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

Observe lo siguiente en el oficial de documentación de Apple:

identificador único de un dispositivo (a veces abreviado como UDID para identificador de dispositivo único) es un valor hash compuesto por varios identificadores de hardware, como el número de serie del dispositivo. Se garantiza que es único para cada dispositivo. El UDID es independiente del nombre del dispositivo. Para los dispositivos que usan una tarjeta SIM (módulo de identidad del suscriptor), el UDID es independiente de la tarjeta SIM.

Para la seguridad y privacidad del usuario, no debe asociar públicamente el identificador único de un dispositivo con una cuenta de usuario.

Puede usar el UDID, junto con un ID de usuario específico de la aplicación, para identificar datos específicos de la aplicación en su servidor. Por ejemplo, puede utilizar una ID de combinación de dispositivo-usuario para controlar el acceso a los productos registrados o cuando se almacenan puntajes altos para un juego en un servidor central. Sin embargo, si está desarrollando un juego, puede utilizar la clave de identificación del jugador de Game Center como se explica en la Guía de programación del juego.

Importante: Nunca almacene la información del usuario basada únicamente en el UDID. Utilice siempre una combinación de UDID e ID de usuario específico de la aplicación. Una identificación combinada asegura que si un usuario pasa un dispositivo a otro usuario, el nuevo usuario no tendrá acceso a los datos del usuario original.

+0

Buena información ... Gracias – bryanmac

+2

'[[UIDevice currentDevice] uniqueIdentifier]' está en desuso en iOS 5.0, use 'CFUUIDCreate()' en su lugar! –

2

Supongo que te refieres al UDID, ¿verdad? Tal vez esta es la razón por la que no pudo encontrar preguntas y respuestas similares, como this one :)

+0

Yay, tienes razón, gracias ;-) – tamasgal

3

He utilizado el UDID para comprobar si el dispositivo ya tiene una suscripción en ejecución. Conseguir el UDID es fácil:

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

Si leer sobre las reglas App Store, hay una sección acerca de dejar que el usuario crea una cuenta para mover las suscripciones a otro dispositivo. En esta sección, Apple aclara que la creación de la cuenta debe ser un nombre de usuario y una contraseña que el usuario debe ingresar. El nombre de usuario no puede ser una dirección de correo electrónico, ya que es información personal.

Si su aplicación se basa en los datos, sería aconsejable crear una cuenta de usuario opcional.

Las directrices AppStore puede ser encontrado: http://developer.apple.com/appstore/resources/approval/guidelines.html

+0

Podría, por favor añadir un enlace a la mencionada regla de suscripción en apple –

2

UDID queda oculto porque iOS 6 y versiones posteriores para que pueda identificar de forma exclusiva el dispositivo por:

NSString *UDID = [[UIDevice currentDevice] identifierForVendor]; 
Cuestiones relacionadas