¿Hay alguna forma desde (el lanzamiento de iOS 7) para obtener el UDID sin usar iTunes en una PC / Mac?

80

Estoy desarrollando una aplicación para mi empresa y estamos atravesando el proceso de permitir que las personas ingresen lentamente a la "beta" agregando sus iPads a las cuentas del Centro de desarrollo de iOS de la empresa. A partir de ahí, hacemos una compilación ad hoc para la distribución de intranet local.

En mi último concierto, dirigía a la gente a una de esas aplicaciones de "buscar mi UDID por mí", y luego les pedía que me enviaran el UDID que encontró.

iOS 7 ha cortado esto: esas aplicaciones ya no están y, si todavía tiene una, devuelve un GUID que no tiene nada que ver con el UDID.

Entonces, lo que tengo que hacer es conectar cada una de estas cosas a mi Mac, luego obtener el UDID de iTunes, lo cual es un poco complicado (pero menos tedioso que tratar de explicarles cómo obtenerlo de iTunes, asumiendo que incluso tenerlo instalado). Y a veces intenta sincronizarse con mi Mac, lo que no parece tener ningún efecto más que poner en el dispositivo perfiles de aprovisionamiento que no quiero. Y al menos una vez que tuve un iPad, de repente decidí actualizarse de iOS 6 a iOS 7, lo cual no estoy seguro de que esté relacionado con estar conectado (y en este caso el usuario no quería que se actualizara).

Entonces, ¿hay alguna otra forma de obtener el UDID del iPad que no sea conectarlo a una máquina?

PARA SER CLARO: No estoy tratando de obtener el UDID en una aplicación, solo estoy tratando de pensar en la forma más rápida de obtener el UDID para agregarlo a la lista de dispositivos en nuestro perfil de desarrollador para su distribución.

Tom Kidd
fuente
whatsmyudid.com : D puede decir, descargue en la AppStore una aplicación UDID y envíeme el correo electrónico. No tienes otra opción ..
Jordan Montel
1
@JordanMontel es un sitio genial, aunque está usando una versión antigua de iTunes que ya no coincide con la apariencia, y el comando de copia asume que estás ejecutando una Mac. Y las aplicaciones UDID ya no dan un UDID válido desde iOS 7
Tom Kidd
2
Oh, sí, recuerdo que con iOS 7 ... el UDID enviado desde la aplicación comienza con FFFF ... Entonces, la solución única es conectar el dispositivo a iTunes: s
Jordan Montel
Estoy en el mismo barco: desarrollo aplicaciones para varios clientes, y no estoy seguro de cómo Apple espera que agreguemos dispositivos para pruebas internas si no puedo hacer que me envíen por correo electrónico el UDID.
software evolucionado el
2
TestFlight está logrando esto de alguna manera con dispositivos iOS 7 mediante el uso de un perfil de configuración. Podría ver cómo está funcionando.
Jesse Rusak

Respuestas:

74

Estos son los resultados de mi investigación:

Apple ha ocultado el UDID de todas las API públicas, comenzando con iOS 7. Cualquier UDID que comience con FFFF es una identificación falsa. Las aplicaciones "Enviar UDID" que funcionaban anteriormente ya no se pueden usar para recopilar UDID para dispositivos de prueba. (¡suspiro!)

El UDID se muestra cuando un dispositivo está conectado a XCode (en el organizador) y cuando el dispositivo está conectado a iTunes (aunque debe hacer clic en 'Número de serie' para que se muestre el Identificador.

Si necesita obtener el UDID de un dispositivo para agregarlo a un perfil de aprovisionamiento y no puede hacerlo usted mismo en XCode, tendrá que seguir los pasos para copiarlo / pegarlo desde iTunes.

ACTUALIZACIÓN: consulte la respuesta de okiharaherbst a continuación para obtener un enfoque basado en script que permita a los usuarios de prueba proporcionarle los UDID de su dispositivo alojando un archivo mobileconfig en un servidor

software evolucionado
fuente
200
¿Alguna vez has tenido la sensación de que Apple odia a los desarrolladores?
ryan0
15
"tendrás que guiarlos por los pasos para copiarlo / pegarlo desde iTunes". Este sitio web podría ayudar un poco: whatsmyudid.com
Guillaume Algis
totalmente la respuesta. la mitad de los usuarios para los que tengo el UDID son falsos, y esas son las personas que no pueden instalar mi aplicación de desarrollo
bentedder
Amablemente, agregue el enlace del documento de Apple si tiene sobre este problema.
Praveenkumar
2
hacer clic derecho en el valor le permitió copiar el valor (versión de Windows de iTunes, no estoy seguro de la versión de Mac)
software evolucionó el
103

Vaya a http://get.udid.io/ desde Safari en su dispositivo iOS. Funciona a las mil maravillas y no requiere ni iTunes ni ninguna otra computadora. Tampoco hay ninguna aplicación instalada.

EDITAR:

Además, eche un vistazo a Obtener un UDID de dispositivo de .mobileconfig si (comprensiblemente) prefiere tener este certificado .mobileconfig alojado en un servidor suyo.

HAZ LO TUYO:

Tenga una copia del ejemplo .mobileconfig alojado en su servidor y escriba 2-3 pequeños scripts en su idioma favorito para manejar el siguiente flujo:

  1. Navegue en Safari a una URL que redireccione a enroll.mobileconfig a continuación. Esto hace que iOS abra la aplicación Configuración y muestre el perfil.
  2. Al aceptar el perfil, iOS vuelve a Safari y publica la matriz DeviceAttributes en la URL especificada enroll.mobileconfig.
  3. Los datos POST contendrán un archivo .plist con los atributos solicitados (vea el ejemplo a continuación). Uno de los cuales será el santo UDID.

Observación: probablemente debería tener algunos mensajes fáciles de usar. Específicamente, incluso tenemos un paso 0. donde se le pide al usuario que proporcione su nombre y correo electrónico que almacenamos temporalmente en la sesión HTTP y luego redirigir la solicitud al perfil de mobileconfig. En última instancia, combinamos esta información con los datos del iPhone y enviamos un correo electrónico de confirmación amigable. HTH.

enroll.mobileconfig

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadContent</key>
        <dict>
            <key>URL</key>
            <string>http://support.devcorp.com/uuid/returnurl/</string>
            <key>DeviceAttributes</key>
            <array>
            <string>DEVICE_NAME</string>
            <string>UDID</string>
            <string>PRODUCT</string>
            <string>VERSION</string>
            <string>SERIAL</string>
            </array>
        </dict>
        <key>PayloadOrganization</key>
        <string>DevCorp Inc.</string>
        <key>PayloadDisplayName</key>
        <string>Profile Service</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>PayloadUUID</key>
        <string>C5FB9D0D-0BE7-4F98-82CC-5D0EA74F8CF8</string> <!-- any random UUID -->
        <key>PayloadIdentifier</key>
        <string>com.devcorp.profile-service</string>
        <key>PayloadDescription</key>
        <string>This is a temporary profile to enroll your device for ad-hoc app distribution</string>
        <key>PayloadType</key>
        <string>Profile Service</string>
    </dict>
</plist>

.plist de muestra PUBLICADO por el iPhone a la URL dada

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PRODUCT</key>
    <string>iPhone4,1</string>
    <key>SERIAL</key>
    <string>DNPGWR2VCTC0</string>
    <key>UDID</key>
    <string>b01ea7bc2237fed21bfe403c6d2b942ddb3c12c3</string>
    <key>VERSION</key>
    <string>11A465</string>
</dict>
VH-NZZ
fuente
1
Lo sé, y configurar un servicio similar para el uso propio / de los clientes es solo cuestión de unos pocos clics.
VH-NZZ
9
NO use este sitio, ya que lo hace instalar un servicio de perfil que puede hacer que sus datos sean accesibles para el propietario del sitio.
lista de verificación
1
@ checklist: no estoy de acuerdo. Dos cosas, un comentario y un comentario: . Vea mi edición anterior respecto. problemas de privacidad. 2do . ¿De qué sirve tu UUID sin tu iphone? Observación : el perfil no hace que sus "datos sean accesibles para el propietario del sitio", ni siquiera permanecerá instalado. ¿Puedes elaborar? Comentario : si tiene una forma más sencilla de recuperar el UUID, estoy escuchando. Si le preocupa que su UUID se envíe una y otra vez a su correo electrónico, aloje su propio servicio a través de SSL. Como nota al margen : conectar tu iPhone a iTunes también envía tus datos a Apple (y posiblemente al N $ @).
VH-NZZ
4
Hola. Existe una diferencia entre enviar sus datos a Apple y enviarlos a un sitio web desconocido. Existen numerosas advertencias sobre la instalación de perfiles en su dispositivo, ya que permiten la interceptación de sus datos. Yo no lo haría.
lista de verificación
3
@checklist: existen preocupaciones legítimas por saber todo lo que publiques en la red. Nuevamente, si no se siente cómodo usando ese servicio de conveniencia , está bien. La parte EDITAR de la respuesta le dice cómo hacer la suya propia, eliminando así cualquier preocupación que pueda tener manteniendo su simplicidad. HTH.
VH-NZZ
17

Espero que esto ayude:

  1. Conecte el iPhone a su MAC (no probé esto con Windows)
  2. Haga clic en el logotipo de Apple en la esquina superior izquierda> seleccione Acerca de esta Mac
  3. En la pestaña Descripción general > Informe del sistema
  4. Hardware en la columna de la izquierda> USB >
  5. luego en el panel derecho seleccione iPhone
  6. en el panel inferior -> " Número de serie "

-> Y ese número de serie es UDID

Chatrapatía
fuente
Ahora, ESO es por lo que amo StackOverflow :) Gracias por esta maravillosa solución.
Jean Le Moignan
1
Después de hacer clic en Número de serie, cambia a UDID
Vishal
13

Si alguno de sus usuarios está ejecutando Linux, puede usar esto desde una terminal:

lsusb -v 2> /dev/null | grep -e "Apple Inc" -A 2

Esto obtiene toda la información de sus dispositivos USB conectados e imprime líneas con "Apple Inc", incluidas las siguientes 2 líneas.

El resultado se ve así:

iManufacturer           1 Apple Inc.
iProduct                2 iPad
iSerial                 3 7ddf32e17a6ac5ce04a8ecbf782ca509...

Esto me ha funcionado en iOS5 -> iOS7, aunque no lo he probado en ningún dispositivo iOS4.

En mi opinión, esto es más rápido que cualquier solución de Win / Mac / Browser que haya encontrado y no requiere instalación de "software".

complista
fuente
1
¿Puede confirmar que "iSerial" == UDID?
software evolucionó el
Lo he estado usando como UDID en el centro de desarrollo de Apple para crear perfiles de aprovisionamiento de desarrollo bien.
complementario
1
¿Alguna forma de hacer algo como esto en Win?
Nicolas Barbulesco
5

TestFlight parece poder extraer el UDID una vez que el usuario se registra:

https://testflightapp.com

dazhi
fuente
1
Secundo esto. A partir de ahora, TestFlight es el único camino a seguir.
Blazor
Qué tenemos que hacer ? ¿Funciona esto con iOS 7.1? He leído que TestFlight ya no funciona para obtener el UDID.
Nicolas Barbulesco
4

He estado usando la Utilidad de configuración de iPhone para leer los UDID e instalar la aplicación de desarrollo. Todavía funciona bien en iOS7

alemán
fuente
1
La pregunta original mencionaba que no se usaba iTunes, pero en realidad se preguntaba "¿hay alguna forma de obtener el UDID sin tener el dispositivo en la mano o sin obligar al usuario a instalar el software de Apple?" y esta respuesta falla esa prueba
software evolucionó el
Me gusta esta solucion ¿Necesita administración en Windows?
Nicolas Barbulesco
Por desgracia, necesito la administración de Windows para instalar la Utilidad de configuración de iPhone 3.6.2 en Windows. No me pregunte por qué debe ser administrador de la PC para usar una herramienta que configura iPhones ...
Nicolas Barbulesco
3

Conéctelo y ejecútelo desde la línea de comando:

system_profiler SPUSBDataType

Buscar:

Serial Number: xxxx
Chris
fuente
1
¡FRIO! Amo esta solucion Gracias. Agregué un poco de awk al final para producir una lista fácilmente escaneable:system_profiler SPUSBDataType | awk '/:$/{sub(/^ */,"");name=$0}/Serial Number:/{id=$3;print name,id}'
Todd Lehman
Agradable. Pero esta respuesta necesita más detalles. ¿Enchufarlo dónde? Tengo una idea ... ;-)
Nicolas Barbulesco
2

Haga que creen una cuenta testflightapp.com .

Esto es muy útil para las pruebas beta, y supongo que es para lo que necesitas los udids.

Puede enviarles un enlace de descarga a su aplicación (que se encuentra en el toque de permisos en la parte inferior de la página) y les dirá que su udid aún no ha sido validado. ¡Entonces les dirá su udid! Pueden copiar y pegar esto y enviarle un mensaje de texto.

maxhud
fuente
2

Encontré una buena manera de manejarlo: agregue la aplicación a testFlight.com y proporcione el enlace al usuario que desea su UDID. Verá un mensaje de error que dice "su dispositivo UDID: xxxxxx no está registrado" y el UDID será el correcto.

Loves2Develop
fuente
1

Pruebe esta herramienta en línea http://www.easy-udid.com . Lo probé en varios dispositivos iOS (iOS 6 y 7) y funciona bien. Práctica herramienta para agregar rápidamente el UDID del cliente en el perfil del desarrollador

Rollins dev4mob
fuente
2
Pero este sitio me pide que instale un "perfil". Y iOS me advierte que hacer esto modificaría mi configuración. No me gusta eso.
Nicolas Barbulesco
1

Utilice el vuelo de prueba para obtener el UDID de los probadores, pero sin utilizar una fuente que no sea de confianza, por ejemplo, http://get.udid.io/

Puede 1. Invitar a los evaluadores por correo electrónico desde la página web del vuelo de prueba. Los probadores abren el enlace en el correo electrónico e instalan un perfil del vuelo de prueba. Por lo tanto, los desarrolladores pueden obtener UDID en la página web del vuelo de prueba. 2. Agregue esos UDID en el portal de aprovisionamiento de Apple.

(Ref: http://help.testflightapp.com/customer/portal/articles/829537-how-does-it-work- )

El proceso no requiere que los probadores usen Mac / PC para obtener UDID (más conveniente). Y creo que el vuelo de prueba es una empresa en la que se puede confiar (no se preocupe al pasar el UDID a esta empresa).

He probado este método y funciona en iOS 8.

oOEric
fuente
1
¿Es dañino udid.io?
Ivanka Todorova
1

Pasos para encontrar el UDID de iPhone y iPad sin usar itunes

  1. Abra el enlace de abajo en su iPhone o iPad: - http://get.udid.io/

  2. Haga clic en el botón Color verde - Toque para encontrar UDID

  3. Obtenga su UDID aparecerá, haga clic en el botón INSTALAR superior del lado derecho

4. Aparecerá UDID. Copie el UDID.

Ullas Pujary
fuente
0

Creo que iTunes parece ser la única respuesta, lo cual es extremadamente desafortunado.

CBanga
fuente
¿Has leído las respuestas? Puede usar la información del sistema, la utilidad de configuración del iphone, la página web get.udid.io y el organizador, testflight .....
LightMan
0

O use mi solución aquí www.my-mo.co.uk/device/deviceinfo.php le permitirá acceder a UDID y enviarlo por correo electrónico a quien usted elija también.

Alex McPherson
fuente
1
Queridos amigos del futuro , esta solución funciona con iOS 7.1.
Nicolas Barbulesco
1
Claro que sí o puede usar este dominio para acceder a la misma función www.my-udid.com
Alex McPherson
Demasiado. Esta solución ya no funciona. La dirección da un error: 404, no encontrado.
Nicolas Barbulesco
0

Si está utilizando una Mac, puede obtener el UUID del "Informe del sistema" disponible en "Acerca de esta Mac". Con el dispositivo conectado, abra la sección USB y haga clic en iPhone. El UUID aparece debajo de "Número de serie"

Tad
fuente
0

diawi.com ha funcionado para mí, no es necesario conectar el iPhone con cable o etc .: simplemente siga su pestaña "Mi dispositivo" que lo llevará a instalar su perfil de provisión y luego mostrar el UDID y agregar la opción para enviarlo por correo electrónico.

Yizhar
fuente
-3

Utilice udid.io en el navegador de su dispositivo o instale iTools y conecte el dispositivo para obtener el UDID correcto.

Adarsh ​​EM

usuario2862579
fuente
2
"Esperamos que seas tester o desarrollador de aplicaciones móviles o algo así". Erm, no se ofenda, pero ese sitio parece un poco turbio y el perfil de aprovisionamiento sin firmar no es precisamente reconfortante. Por no hablar de cómo no estoy seguro de cómo están obteniendo el UDID
Tom Kidd
Ya no existe ningún mecanismo aprobado para que un sitio o herramienta recupere el UDID real de un dispositivo, si no tiene jailbreak. Evitaría cualquier solución que diga lo contrario
software evolucionó el
@Schnapple El sitio aprovecha los perfiles de configuración que generalmente usa MDM (pero que también usan servicios como TestFlight) para recuperar el UDID. Estoy de acuerdo con la parte sin firmar, pero aparte de eso, no debería representar un problema. Usted puede todavía conseguir el UDID desde un dispositivo iOS, pero no desde dentro de una aplicación; Los UDID todavía se utilizan ampliamente en MDM.
Calrion
1
Investigué un poco sobre el sistema de administración de dispositivos móviles (MDM). Los documentos de la API solo se publican para desarrolladores empresariales, pero se informa que son compatibles con los mecanismos para recuperar el UDID, por lo que mi declaración anterior ("Ya no hay ningún mecanismo aprobado para que un sitio o herramienta recupere el UDID real de un dispositivo") Está Mal.
software evolucionó el
iTools? ¿Mac OS 9 está de vuelta? :-)
Nicolas Barbulesco
-4

Podemos usar identifierForVendor para ios7,

-(NSString*)uniqueIDForDevice
{
    NSString* uniqueIdentifier = nil;
    if( [UIDevice instancesRespondToSelector:@selector(identifierForVendor)] ) { // >=iOS 7
        uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    } else { //<=iOS6, Use UDID of Device       
            CFUUIDRef uuid = CFUUIDCreate(NULL);
            //uniqueIdentifier = ( NSString*)CFUUIDCreateString(NULL, uuid);- for non- ARC
            uniqueIdentifier = ( NSString*)CFBridgingRelease(CFUUIDCreateString(NULL, uuid));// for ARC
            CFRelease(uuid);
         }
    }
return uniqueIdentifier;
}

--Nota IMPORTANTE ---

UDID e identifierForVendor son diferentes: ---

1.) On uninstalling  and reinstalling the app identifierForVendor will change.

2.) The value of identifierForVendor remains the same for all the apps installed from the same vendor on the device.

3.) The value of identifierForVendor also changes for all the apps if any of the app (from same vendor) is reinstalled.
Desarrollador HD
fuente
2
No estoy buscando obtener algo para identificar el dispositivo dentro de la aplicación, estoy buscando una forma de obtener el UDID sin tener que usar nada más que el dispositivo para agregarlo a un perfil de aprovisionamiento ad hoc. Un número cada vez mayor de personas nunca sincroniza sus dispositivos iOS con una computadora directamente: el dispositivo puede actualizarse solo, sincronizar configuraciones a través de iCloud, etc. y, a veces, hacer una sincronización con iTunes estropea todo. La respuesta parece ser "no"
Tom Kidd
¿Escribo todo eso en mi iPhone? ^^ ¿Dónde? ¿Me dará mi UDID? Creo que esta respuesta no responde a la pregunta: ¿Cómo obtengo el UDID de mi iPhone?
Nicolas Barbulesco