Gibt es seit (Veröffentlichung von iOS 7) eine Möglichkeit, die UDID zu erhalten, ohne iTunes auf einem PC / Mac zu verwenden?

80

Ich entwickle eine App für mein Unternehmen und lasse die Leute langsam in die "Beta" einsteigen, indem wir ihre iPads zu den iOS Dev Center-Konten des Unternehmens hinzufügen. Von dort aus erstellen wir einen Ad-hoc-Build für die lokale Intranetverteilung.

Bei meinem letzten Auftritt habe ich die Leute zu einer dieser Apps "Finde meine UDID für mich" geleitet und sie dann dazu gebracht, mir die gefundene UDID zu senden.

iOS 7 hat dies abgeschnitten - diese Apps sind jetzt alle weg und wenn Sie noch eine haben, gibt es eine GUID zurück, die nichts mit der UDID zu tun hat.

Was ich also tun muss, ist, jedes dieser Dinge mit meinem Mac zu verbinden und dann die UDID von iTunes zu erhalten, was ein bisschen mühsam ist (aber weniger mühsam als zu versuchen, ihnen zu erklären, wie man es von iTunes bekommt, vorausgesetzt, sie sind es habe es sogar installiert). Und manchmal wird versucht, eine Synchronisierung mit meinem Mac durchzuführen, was keine anderen Auswirkungen zu haben scheint, als Bereitstellungsprofile zu erstellen, die ich nicht auf dem Gerät haben möchte. Und mindestens einmal hatte ich ein iPad, das sich plötzlich entschied, ein Upgrade von iOS 6 auf iOS 7 durchzuführen, was nicht sicher ist, ob es angeschlossen ist (und in diesem Fall wollte der Benutzer nicht, dass es aktualisiert wird).

Gibt es also eine andere Möglichkeit, die UDID vom iPad abzurufen, als sie an einen Computer anzuschließen?

KLAR SEIN: Ich versuche nicht, die UDID in einer App abzurufen. Ich versuche nur, den schnellsten Weg zu finden, um die UDID zur Geräteliste in unserem Entwicklerprofil zur Verteilung hinzuzufügen.

Tom Kidd
quelle
whatsmyudid.com : D Sie können sagen, laden Sie im AppStore eine UDID-App herunter und senden Sie mir die E-Mail. Sie haben keine andere Wahl ..
Jordan Montel
1
@JordanMontel, das ist eine coole Site, obwohl eine alte Version von iTunes verwendet wird, die nicht mehr dem Erscheinungsbild entspricht, und der Kopierbefehl setzt voraus, dass Sie einen Mac verwenden. Und die UDID-Apps geben seit iOS 7
Tom Kidd
2
Oh ja, ich erinnere mich, dass mit iOS 7 ... die von der App gesendete UDID mit FFFF beginnt ... Die einzigartige Lösung besteht also darin, das Gerät an iTunes anzuschließen: s
Jordan Montel
Ich bin im selben Boot - ich entwickle Apps für mehrere Kunden und bin mir nicht sicher, wie Apple erwartet, dass wir Geräte für interne Tests hinzufügen, wenn sie mir nicht die UDID per E-Mail senden können!
Software entwickelt
2
TestFlight schafft dies mit iOS 7-Geräten mithilfe eines Konfigurationsprofils. Könnte untersuchen, wie das funktioniert.
Jesse Rusak

Antworten:

74

Hier sind meine Forschungsergebnisse:

Apple hat die UDID ab iOS 7 vor allen öffentlichen APIs verborgen. Jede UDID, die mit FFFF beginnt, ist eine gefälschte ID. Die zuvor funktionierenden "UDID senden" -Apps können nicht mehr zum Sammeln von UDIDs für Testgeräte verwendet werden. (Seufzer!)

Die UDID wird angezeigt, wenn ein Gerät mit XCode verbunden ist (im Organizer) und wenn das Gerät mit iTunes verbunden ist (obwohl Sie auf "Seriennummer" klicken müssen, damit die Kennung angezeigt wird.

Wenn Sie die UDID für ein Gerät zum Hinzufügen zu einem Bereitstellungsprofil benötigen und dies in XCode nicht selbst tun können, müssen Sie sie durch die Schritte zum Kopieren / Einfügen aus iTunes führen.

UPDATE - In der folgenden Antwort von okiharaherbst finden Sie einen skriptbasierten Ansatz, mit dem Testbenutzer Ihre Geräte-UDIDs bereitstellen können, indem sie eine mobileconfig-Datei auf einem Server hosten

Software entwickelt
quelle
199
Haben Sie jemals das Gefühl, dass Apple Entwickler hasst?
Ryan0
15
"Sie müssen sie durch die Schritte führen, um sie aus iTunes zu kopieren / einzufügen". Diese Website könnte ein bisschen helfen: whatsmyudid.com
Guillaume Algis
total die Antwort. Die Hälfte der Benutzer, für die ich die UDID habe, sind die gefälschten, und das sind die Leute, die meine
Entwickler-
Fügen Sie bitte den Apple-Dokumentlink hinzu, wenn Sie Probleme haben.
Praveenkumar
2
Wenn Sie mit der rechten Maustaste auf den Wert klicken, können Sie den Wert kopieren (Windows-Version von iTunes - nicht sicher über die Mac-Version)
Software wurde am
103

Navigieren Sie auf Ihrem iOS-Gerät von Safari zu http://get.udid.io/ . Es funktioniert wie ein Zauber und erfordert weder iTunes noch einen anderen Computer. Auch keine App installiert.

BEARBEITEN:

Außerdem haben Sie einen Blick auf ein Gerät UDID von .mobileconfig bekommen , wenn Sie (verständlicherweise) würden lieber dieses .mobileconfig Zertifikat auf einem Server von Ihnen gehostet haben.

MACH DEIN EIGENES:

Lassen Sie eine Kopie des .mobileconfig-Beispiels auf Ihrem Server hosten und schreiben Sie 2-3 kleine Skripte in Ihrer Lieblingssprache, um den folgenden Ablauf zu bewältigen:

  1. Navigieren Sie in Safari zu einer URL, die unten zu register.mobileconfig umleitet . Dadurch öffnet iOS die App Einstellungen und zeigt das Profil an.
  2. Nach dem Akzeptieren des Profils wechselt iOS zurück zu Safari und sendet das DeviceAttributes-Array an die angegebene URL register.mobileconfig.
  3. Die POST-Daten enthalten eine .plist-Datei mit den angeforderten Attributen (siehe Beispiel unten). Eines davon wird die heilige UDID sein.

Anmerkung: Sie sollten wahrscheinlich einige benutzerfreundliche Nachrichten haben. Insbesondere haben wir sogar einen Schritt 0. Hier wird der Benutzer aufgefordert, seinen Namen und seine E-Mail-Adresse anzugeben, die wir vorübergehend in der HTTP-Sitzung speichern, und die Anforderung dann an das Profil mobileconfig umzuleiten. Wir stimmen diese Informationen letztendlich mit den iPhone-Daten ab und senden eine freundliche Bestätigungs-E-Mail. HTH.

register.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>

Beispiel .plist Vom iPhone an die angegebene URL gesendet

<?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
quelle
1
Ich weiß, und das Einstellen eines ähnlichen Dienstes für Sie / Ihre Kunden ist nur eine Frage von wenigen Klicks.
VH-NZZ
9
Verwenden Sie diese Site NICHT, da Sie dadurch einen Profildienst installieren, mit dem Ihre Daten dem Eigentümer der Site zugänglich gemacht werden können.
Checkliste
1
@checklist: Ich bin anderer Meinung. Zwei Dinge, eine Bemerkung und ein Kommentar: 1 .. Siehe meine Bearbeitung oben. Datenschutzprobleme. 2 .. Was nützt deine UUID ohne dein iPhone? Anmerkung : Das Profil macht Ihre "Daten nicht für den Websitebesitzer zugänglich", es bleibt nicht einmal installiert. Können Sie das näher erläutern? Kommentar : Wenn Sie die UUID einfacher abrufen können, höre ich zu. Wenn Sie befürchten, dass Ihre UUID an Ihre E-Mail-Adresse gesendet wird, hosten Sie Ihren eigenen Dienst über SSL. Als Randnotiz : Wenn Sie Ihr iPhone an iTunes anschließen, werden Ihre Daten auch an Apple (und möglicherweise an N $ @) gesendet.
VH-NZZ
4
Hallo. Es gibt einen Unterschied zwischen dem Senden Ihrer Daten an Apple und dem Senden an eine unbekannte Website. Es gibt zahlreiche Warnungen zur Installation von Profilen auf Ihrem Gerät, da diese das Abfangen Ihrer Daten ermöglichen. Ich würde es nicht tun.
Checkliste
3
@checklist: Es gibt berechtigte Bedenken, etwas zu schreiben, was Sie im Internet veröffentlichen. Auch hier ist es in Ordnung , wenn Sie sich mit diesem praktischen Service unwohl fühlen. Der EDIT- Teil der Antwort zeigt Ihnen, wie Sie Ihre eigenen erstellen können, um eventuelle Sorgen zu beseitigen und gleichzeitig die Einfachheit beizubehalten. HTH.
VH-NZZ
17

Hoffe das würde helfen:

  1. Verbinden Sie das iPhone mit Ihrem MAC (ich habe dies nicht mit Windows versucht)
  2. Klicken Sie oben links auf das Apple-Logo und wählen Sie " Über diesen Mac"
  3. Auf der Registerkarte Übersicht > Systembericht
  4. Hardware in der linken Spalte> USB >
  5. Wählen Sie dann im rechten Bereich das iPhone aus
  6. im unteren Bereich -> " Seriennummer "

-> Und diese Seriennummer ist UDID

Chatrapathy
quelle
Deshalb liebe ich StackOverflow :) Danke für diese wundervolle Lösung.
Jean Le Moignan
13

Wenn einer Ihrer Benutzer Linux ausführt, kann er dies von einem Terminal aus verwenden:

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

Dadurch werden alle Informationen für Ihre angeschlossenen USB-Geräte abgerufen und Zeilen mit "Apple Inc" gedruckt, einschließlich der nächsten 2 Zeilen.

Das Ergebnis sieht folgendermaßen aus:

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

Dies hat bei iOS5 -> iOS7 funktioniert, ich habe jedoch noch keine iOS4-Geräte ausprobiert.

IMO ist dies schneller als jede Win / Mac / Browser-Lösung, die ich gefunden habe, und erfordert keine "Software" -Installation.

komplistisch
quelle
1
Können Sie bestätigen, dass "iSerial" == UDID?
Software entwickelt
Ich habe es als UDID im Entwicklungszentrum von Apple verwendet, um Entwicklungsbereitstellungsprofile zu erstellen.
Komplistische
1
Gibt es eine Möglichkeit, so etwas bei Win zu tun?
Nicolas Barbulesco
5

TestFlight scheint in der Lage zu sein, die UDID zu extrahieren, sobald sich der Benutzer anmeldet:

https://testflightapp.com

dazhi
quelle
1
Ich unterstütze das. Ab sofort ist TestFlight der einzige Weg.
Blazor
Was müssen wir tun ? Funktioniert das mit iOS 7.1? Ich habe gelesen, dass TestFlight nicht mehr zum Abrufen der UDID funktioniert.
Nicolas Barbulesco
4

Ich habe das iPhone-Konfigurationsdienstprogramm verwendet, um die UDIDs zu lesen und die Entwicklungs-App zu installieren. Funktioniert immer noch gut unter iOS7

Jerry
quelle
1
In der ursprünglichen Frage wurde erwähnt, dass iTunes nicht verwendet wird, aber es wird wirklich gefragt: "Gibt es eine Möglichkeit, die UDID zu erhalten, ohne das Gerät in der Hand zu haben, oder den Benutzer zu zwingen, Apple-Software zu installieren?" und diese Antwort nicht , dass Test
Software entwickelt
Ich mag diese Lösung. Benötigt es eine Verwaltung unter Windows?
Nicolas Barbulesco
Leider benötige ich Windows-Administration, um das iPhone-Konfigurationsdienstprogramm 3.6.2 unter Windows zu installieren. Fragen Sie mich nicht, warum Sie Administrator des PCs sein müssen, um ein Tool zum Einrichten von iPhones zu verwenden ...
Nicolas Barbulesco
3

Schließen Sie es an und führen Sie dies über die Befehlszeile aus:

system_profiler SPUSBDataType

Suche:

Serial Number: xxxx
Chris
quelle
1
COOL! Ich liebe diese Lösung. Danke dir. Ich habe am Ende ein paar Awk angehängt , um eine leicht zu scannende Liste zu erstellen:system_profiler SPUSBDataType | awk '/:$/{sub(/^ */,"");name=$0}/Serial Number:/{id=$3;print name,id}'
Todd Lehman
Nett. Diese Antwort bedarf jedoch weiterer Einzelheiten. Stecken Sie es wo ein? Ich habe eine Idee ... ;-)
Nicolas Barbulesco
2

Lassen Sie sie ein testflightapp.com- Konto erstellen .

Dies ist sehr nützlich für Betatests - ich vermute, dafür brauchen Sie die Udids.

Sie können ihnen einen Download-Link zu Ihrer App senden (im Berechtigungsbereich unten auf der Seite), der ihnen mitteilt, dass ihre udid noch nicht validiert wurde. Es wird ihnen dann ihre udid sagen! Sie können dies kopieren, einfügen und an Sie senden.

Maxhud
quelle
2

Es wurde eine gute Möglichkeit gefunden, damit umzugehen: Fügen Sie die App zu testFlight.com hinzu und geben Sie den Link zu dem Benutzer an, dessen UDID Sie möchten. Es wird eine Fehlermeldung mit der Meldung "UDID Ihres Geräts: xxxxxx ist nicht registriert" angezeigt, und die UDID ist die richtige.

Loves2Develop
quelle
1

Probieren Sie dieses Online-Tool http://www.easy-udid.com aus . Ich habe es auf verschiedenen iOS-Geräten (iOS 6 und 7) getestet und es funktioniert einwandfrei. Handliches Tool zum schnellen Hinzufügen der UDID des Kunden zum Entwicklerprofil

Rollins dev4mob
quelle
2
Diese Seite fordert mich jedoch auf, ein "Profil" zu installieren. Und iOS warnt mich, dass dies meine Einstellungen ändern würde. Das gefällt mir nicht.
Nicolas Barbulesco
1

Bitte verwenden Sie den Testflug, um die UDID von Testern zu erhalten, verwenden Sie jedoch keine nicht vertrauenswürdige Quelle, z. B. http://get.udid.io/.

Sie können 1. Tester per E-Mail von der Testflug-Webseite einladen. Tester öffnen den Link per E-Mail und installieren ein Profil vom Testflug. Daher können Entwickler UDIDs auf der Webseite des Testfluges erhalten. 2. Fügen Sie diese UDIDs im Apple Provisioning Portal hinzu.

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

Der Prozess erfordert nicht, dass Tester Mac / PC verwenden, um UDID zu erhalten (bequemer). Und ich denke, Testflug ist ein Unternehmen, dem man vertrauen kann (keine Sorge, wenn UDID an dieses Unternehmen weitergegeben wird).

Ich habe diese Methode getestet und sie funktioniert unter iOS 8.

oOEric
quelle
1
Ist es schädlich udid.io?
Ivanka Todorova
1

Schritte zum Ermitteln der UDID von IPhone und IPad ohne Verwendung von iTunes

  1. Öffnen Sie den folgenden Link auf Ihrem iPhone oder iPad: - http://get.udid.io/

  2. Klicken Sie auf die Schaltfläche Grüne Farbe - Tippen Sie auf, um die UDID zu suchen

  3. Wenn Ihre UDID angezeigt wird, klicken Sie oben rechts auf die Schaltfläche INSTALLIEREN

4. UDID wird angezeigt Kopieren Sie die UDID.

Ullas Pujary
quelle
0

Ich denke, iTunes scheint die einzige Antwort zu sein, was äußerst unglücklich ist.

CBanga
quelle
Hast du die Antworten gelesen? Sie können Systeminformationen, das iPhone-Konfigurationsdienstprogramm, die Webseite get.udid.io und den Organizer testflight verwenden .....
LightMan
0

Oder verwenden Sie meine Lösung hier www.my-mo.co.uk/device/deviceinfo.php ermöglicht es Ihnen, auf die UDID zuzugreifen und sie per E-Mail an die von Ihnen ausgewählte Person zu senden.

Alex McPherson
quelle
1
Liebe Leute aus der Zukunft , diese Lösung funktioniert mit iOS 7.1.
Nicolas Barbulesco
1
Sicher oder Sie können diese Domain verwenden, um auf dieselbe Funktion zuzugreifen
Alex McPherson
Schade. Diese Lösung funktioniert nicht mehr. Die Adresse gibt einen Fehler aus: 404, nicht gefunden.
Nicolas Barbulesco
0

Wenn Sie einen Mac verwenden, können Sie die UUID aus dem "Systembericht" abrufen, der unter "Über diesen Mac" verfügbar ist. Öffnen Sie bei angeschlossenem Gerät den USB-Bereich und klicken Sie auf iPhone. Die UUID erscheint unter "Seriennummer"

Bisschen
quelle
0

diawi.com hat für mich funktioniert, es ist nicht erforderlich, das iPhone mit einem Kabel usw. zu verbinden: Folgen Sie einfach der Registerkarte "Mein Gerät", auf der Sie das Bereitstellungsprofil installieren, die UDID anzeigen und die Option zum Senden per E-Mail hinzufügen.

Yizhar
quelle
-3

Bitte verwenden Sie udid.io in Ihrem Gerätebrowser. Oder installieren Sie iTools und verbinden Sie das Gerät, um die richtige UDID zu erhalten.

Adarsh ​​EM

user2862579
quelle
2
"Wir hoffen, Sie sind Tester oder Entwickler von mobilen Apps oder eine Art von ihnen." Ähm, nichts für ungut, aber diese Site sieht irgendwie zwielichtig aus und das nicht signierte Bereitstellungsprofil ist nicht gerade beruhigend. Ganz zu schweigen davon, wie ich nicht sicher bin, wie sie die UDID bekommen
Tom Kidd
Es gibt keinen genehmigten Mechanismus mehr für eine Site oder ein Tool zum Abrufen der tatsächlichen UDID von einem Gerät, wenn diese nicht jailbroken ist. Ich würde jede Lösung vermeiden, die etwas anderes sagt
Software wurde
@Schnapple Die Site nutzt Konfigurationsprofile, die normalerweise von MDM (aber auch von Diensten wie TestFlight) verwendet werden, um die UDID abzurufen. Ich stimme dem nicht signierten Teil zu, aber ansonsten sollte es kein Problem darstellen. Sie können die UDID weiterhin von einem iOS-Gerät abrufen, nur nicht von einer App aus. UDIDs werden in MDM immer noch häufig verwendet.
Calrion
1
Ich habe einige Untersuchungen zum MDM-System (Mobile Device Management) durchgeführt. Die API-Dokumente werden nur für Unternehmensentwickler freigegeben, es wird jedoch berichtet, dass sie Mechanismen zum Abrufen der UDID unterstützen, daher meine frühere Aussage ("Es gibt keinen genehmigten Mechanismus mehr für eine Site oder ein Tool zum Abrufen der tatsächlichen UDID von einem Gerät"). ist falsch.
Software entwickelt
iTools? Mac OS 9 ist zurück? :-)
Nicolas Barbulesco
-4

Wir können identifierForVendor für ios7 verwenden,

-(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;
}

--Wichtige Notiz ---

UDID und identifierForVendor unterscheiden sich: ---

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.
HD-Entwickler
quelle
2
Ich suche nicht nach Informationen zur Identifizierung des Geräts in der App, sondern nach einer Möglichkeit, die UDID abzurufen, ohne etwas anderes als das Gerät selbst verwenden zu müssen, um es einem Ad-hoc-Bereitstellungsprofil hinzuzufügen. Immer mehr Menschen synchronisieren ihre iOS-Geräte nie direkt mit einem Computer - das Gerät kann sich selbst aktualisieren, Einstellungen über iCloud synchronisieren usw., und manchmal bringt eine Synchronisierung mit iTunes alles durcheinander. Die Antwort scheint "nein" zu sein
Tom Kidd
Tippe ich das alles in mein iPhone? ^^ Wo? Wird es mir meine UDID geben? Ich denke, diese Antwort beantwortet nicht die Frage: Wie erhalte ich die UDID meines iPhones?
Nicolas Barbulesco