Czy istnieje sposób od (wydanie iOS 7), aby uzyskać identyfikator UDID bez korzystania z iTunes na komputerze PC / Mac?

80

Tworzę aplikację dla mojej firmy i przechodzimy przez proces powolnego wpuszczania ludzi do „wersji beta”, dodając ich iPady do firmowych kont iOS Dev Center. Stamtąd tworzymy ad hoc do lokalnej dystrybucji w intranecie.

Na moim ostatnim koncercie kierowałem ludzi do jednej z tych aplikacji „znajdź mój UDID dla mnie”, a potem polecałem im przesłanie mi znalezionego identyfikatora UDID.

iOS 7 odciął to - wszystkie te aplikacje zniknęły, a jeśli nadal je masz, zwraca jakiś identyfikator GUID, który nie ma nic wspólnego z UDID.

Muszę więc podłączyć każdą z tych rzeczy do mojego Maca, a następnie pobrać identyfikator UDID z iTunes, co jest trochę kłopotliwe (ale mniej żmudne niż próba wyjaśnienia im, jak uzyskać to z iTunes, zakładając, że nawet mieć go zainstalowanego). Czasami próbuje zsynchronizować się z moim komputerem Mac, co wydaje się nie mieć żadnego wpływu poza założeniem profili obsługi administracyjnej, których nie chcę na urządzeniu. I przynajmniej raz miałem iPada, po prostu nagle zdecydowałem się na uaktualnienie z iOS 6 do iOS 7, co do którego nie jestem pewien, jest związane z podłączeniem (w tym przypadku użytkownik nie chciał go zaktualizować).

Czy jest więc inny sposób uzyskania identyfikatora UDID z iPada niż podłączenie go do komputera?

BYĆ WYRAŹNY: nie próbuję uzyskać UDID w aplikacji, po prostu próbuję wymyślić najszybszy sposób, aby UDID został dodany do listy urządzeń w naszym profilu programisty w celu dystrybucji.

Tom Kidd
źródło
whatsmyudid.com : D możesz powiedzieć, pobierz z AppStore aplikację UDID i wyślij mi e-mail. Nie masz innego wyboru…
Jordan Montel
1
@JordanMontel to fajna strona, chociaż używa starej wersji iTunes, która już nie pasuje do wyglądu / stylu, a polecenie kopiowania zakłada, że ​​używasz komputera Mac. A aplikacje UDID nie dają już prawidłowego UDID od iOS 7
Tom Kidd
2
O tak, pamiętam, że z iOS 7 ... UDID wysłany z aplikacji zaczyna się od FFFF ... Tak więc unikalnym rozwiązaniem jest podłączenie urządzenia do iTunes: s
Jordan Montel
Jestem na tej samej łodzi - tworzę aplikacje dla kilku klientów i nie jestem pewien, jak Apple oczekuje, że dodamy urządzenia do testów wewnętrznych, jeśli nie mogę poprosić ich o przesłanie mi UDID!
oprogramowanie ewoluowało
2
TestFlight robi to w jakiś sposób z urządzeniami iOS 7 przy użyciu profilu konfiguracji. Może przyjrzeć się, jak to działa.
Jesse Rusak

Odpowiedzi:

74

Oto moje wyniki badań:

Firma Apple ukryła identyfikator UDID we wszystkich publicznych interfejsach API, począwszy od systemu iOS 7. Każdy identyfikator UDID rozpoczynający się od FFFF jest fałszywym identyfikatorem. Aplikacji „Wyślij UDID”, które wcześniej działały, nie można już używać do gromadzenia identyfikatora UDID dla urządzeń testowych. (westchnienie!)

Identyfikator UDID jest wyświetlany, gdy urządzenie jest podłączone do XCode (w organizatorze) i gdy urządzenie jest podłączone do iTunes (chociaż musisz kliknąć „Numer seryjny”, aby wyświetlić identyfikator).

Jeśli chcesz uzyskać identyfikator UDID urządzenia, aby dodać go do profilu aprowizacji, a nie możesz tego zrobić samodzielnie w XCode, będziesz musiał przejść przez kolejne kroki, aby skopiować / wkleić go z iTunes.

AKTUALIZACJA - zobacz odpowiedź okiharaherbst poniżej, aby zapoznać się z podejściem opartym na skryptach, aby umożliwić użytkownikom testowym dostarczenie identyfikatorów UDID urządzeń poprzez umieszczenie pliku mobileconfig na serwerze

oprogramowanie ewoluowało
źródło
200
Czy miałeś kiedyś wrażenie, że Apple nienawidzi programistów?
ryan0
15
„będziesz musiał przeprowadzić je przez wszystkie kroki, aby skopiować / wkleić go z iTunes”. Ta strona może trochę pomóc: whatsmyudid.com
Guillaume Algis
całkowicie odpowiedź. połowa użytkowników, dla których mam UDID, to fałszywi, a to są ludzie, którzy nie mogą zainstalować mojej aplikacji
deweloperskiej
Jeśli masz o tym problemie, dodaj link do dokumentu Apple.
Praveenkumar
2
kliknięcie prawym przyciskiem myszy na wartość pozwoliło na skopiowanie wartości (wersja iTunes dla systemu Windows - brak pewności co do wersji dla systemu Mac)
oprogramowanie ewoluowało
103

Przejdź do http://get.udid.io/ z Safari na urządzeniu z systemem iOS. Działa jak urok i nie wymaga ani iTunes, ani żadnego innego komputera. Nie zainstalowano też żadnej aplikacji.

EDYTOWAĆ:

Spójrz także na Pobieranie identyfikatora UDID urządzenia z .mobileconfig, jeśli (co zrozumiałe) wolisz, aby ten certyfikat .mobileconfig był hostowany na Twoim serwerze.

ZROBIĆ WŁASNY:

Miej kopię przykładu .mobileconfig na serwerze i napisz 2-3 małe skrypty w swoim ulubionym języku, aby obsłużyć następujący przepływ:

  1. Przejdź w przeglądarce Safari do adresu URL przekierowującego do poniższego adresu enroll.mobileconfig . To sprawia, że ​​iOS otwiera aplikację Ustawienia i wyświetla profil.
  2. Po zaakceptowaniu profilu iOS przełącza się z powrotem do Safari i wysyła tablicę DeviceAttributes pod podany adres URL enroll.mobileconfig.
  3. Dane POST będą zawierać plik .plist z żądanymi atrybutami (patrz przykład poniżej). Jednym z nich będzie święty UDID.

Uwaga: prawdopodobnie powinieneś mieć przyjazne dla użytkownika komunikaty. W szczególności mamy nawet krok 0, w którym użytkownik jest proszony o podanie swojego imienia i nazwiska oraz adresu e-mail, który tymczasowo przechowujemy w sesji HTTP, a następnie przekierowanie żądania do profilu mobileconfig. Ostatecznie dopasowujemy te informacje do danych iPhone'a i wysyłamy przyjazną wiadomość e-mail z potwierdzeniem. 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>

przykład .plist przesłany przez iPhone'a do podanego adresu URL

<?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
źródło
1
Wiem, a ustawienie podobnej usługi na własny użytek / klientów to kwestia kilku kliknięć.
VH-NZZ
9
NIE używaj tej witryny, ponieważ umożliwia ona zainstalowanie usługi profilu, która może udostępnić Twoje dane właścicielowi witryny.
lista kontrolna
1
@checklist: Nie zgadzam się. Dwie rzeczy, jedna uwaga i jedna uwaga: pierwsza . Zobacz moją edycję powyżej. prywatne problemy. 2nd . Jaki jest twój UUID bez iPhone'a? Uwaga : profil nie udostępnia twoich danych właścicielowi witryny, nawet nie zostanie zainstalowany. Czy możesz rozwinąć? Komentarz : jeśli masz prostszy sposób na odzyskanie UUID, słucham. Jeśli obawiasz się, że Twój UUID jest przesyłany w kółko na Twój adres e-mail, hostuj własną usługę przez SSL. Na marginesie : podłączenie iPhone'a do iTunes powoduje również wysłanie danych do Apple (i prawdopodobnie do N $ @).
VH-NZZ
4
cześć. Istnieje różnica między wysłaniem danych do Apple a wysłaniem ich do nieznanej witryny internetowej. Istnieje wiele ostrzeżeń dotyczących instalowania profili na urządzeniu, ponieważ umożliwiają one przechwycenie danych. Ja bym tego nie zrobił.
lista kontrolna
3
@checklist: Istnieją uzasadnione obawy, że wszystko, co publikujesz w sieci, ma swoje uzasadnienie. Ponownie, jeśli nie czujesz się komfortowo podczas korzystania z tej wygodnej usługi, jest to W porządku. Część EDYTUJ odpowiedzi mówi, jak stworzyć własną, eliminując w ten sposób wszelkie zmartwienia, które możesz mieć, zachowując jednocześnie prostotę. HTH.
VH-NZZ
17

Mam nadzieję, że to pomoże:

  1. Podłącz iPhone'a do swojego MAC (nie próbowałem tego z Windows)
  2. Kliknij logo Apple w lewym górnym rogu> wybierz Informacje o tym komputerze Mac
  3. Na karcie Przegląd > Raport systemowy
  4. Sprzęt w lewej kolumnie> USB >
  5. następnie w prawym okienku wybierz iPhone'a
  6. w dolnym panelu -> „ Numer seryjny

-> A ten numer seryjny to UDID

Chatrapathy
źródło
Otóż, właśnie dlatego uwielbiam StackOverflow :) Dzięki za to wspaniałe rozwiązanie.
Jean Le Moignan,
1
Po kliknięciu numeru seryjnego zmienia się on na UDID
Vishal
14

Jeśli któryś z twoich użytkowników używa Linuksa, może użyć tego z terminala:

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

Spowoduje to pobranie wszystkich informacji o podłączonych urządzeniach USB i wydrukowanie wierszy za pomocą „Apple Inc”, w tym kolejnych 2 wierszy.

Wynik wygląda następująco:

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

To zadziałało dla mnie na iOS5 -> iOS7, chociaż nie próbowałem na żadnym urządzeniu z iOS4.

IMO to jest szybsze niż jakiekolwiek rozwiązanie Win / Mac / Browser, które znalazłem i nie wymaga instalacji "oprogramowania".

skomplikowany
źródło
1
czy możesz potwierdzić, że „iSerial” == UDID?
oprogramowanie ewoluowało
Używam go jako identyfikatora UDID w centrum deweloperów Apple do tworzenia profili udostępniania oprogramowania.
skomplikowany
1
Jakiś sposób na zrobienie czegoś takiego na Win?
Nicolas Barbulesco
5

Wygląda na to, że TestFlight jest w stanie wyodrębnić UDID po zarejestrowaniu się użytkownika:

https://testflightapp.com

dazhi
źródło
1
Popieram to. Na razie TestFlight to jedyna droga.
Blazor
Co mamy robić ? Czy to działa z iOS 7.1? Przeczytałem, że TestFlight nie działa już w celu uzyskania UDID.
Nicolas Barbulesco
4

Do odczytywania identyfikatorów UDID i instalowania aplikacji deweloperskiej używam iPhone'a Configuration Utility. Nadal działa dobrze na iOS7

Nocnik
źródło
1
Pierwotne pytanie dotyczyło nieużywania iTunes, ale tak naprawdę pytają: „czy istnieje sposób na uzyskanie identyfikatora UDID bez posiadania urządzenia w ręku lub zmuszania użytkownika do instalowania oprogramowania Apple?” i ta odpowiedź nie spełnia tego testu
oprogramowanie ewoluowało
Podoba mi się to rozwiązanie. Czy wymaga administrowania w systemie Windows?
Nicolas Barbulesco
Niestety, potrzebuję administracji Windows, aby zainstalować iPhone Configuration Utility 3.6.2 w systemie Windows. Nie pytaj mnie, dlaczego musisz być administratorem komputera, aby używać narzędzia do konfigurowania iPhone'ów ...
Nicolas Barbulesco
3

Podłącz go i uruchom z wiersza poleceń:

system_profiler SPUSBDataType

Szukać:

Serial Number: xxxx
Chris
źródło
1
FAJNE! Uwielbiam to rozwiązanie. Dziękuję Ci. Dołączyłem awk aby stworzyć łatwy do zeskanowania wykaz:system_profiler SPUSBDataType | awk '/:$/{sub(/^ */,"");name=$0}/Serial Number:/{id=$3;print name,id}'
Todd Lehman,
Miły. Ale ta odpowiedź wymaga więcej szczegółów. Podłącz go gdzie? Mam jakiś pomysł ... ;-)
Nicolas Barbulesco
2

Niech utworzą plik testflightapp.com konta .

Jest to bardzo przydatne do testów beta - do czego, jak sądzę, potrzebujesz udids.

Możesz wysłać im link do pobrania swojej aplikacji (znajdziesz go w uprawnieniach dotknij u dołu strony), a to powie im, że ich udid nie został jeszcze zweryfikowany. Wtedy powie im ich udid! Mogą to skopiować i wkleić, a następnie wysłać Ci tekst.

maxhud
źródło
2

Znalazłem fajny sposób, aby sobie z tym poradzić: Dodaj aplikację do testFlight.com i podaj link użytkownikowi, który ma mieć jego UDID. Zobaczy komunikat o błędzie „UDID twojego urządzenia: xxxxxx nie jest zarejestrowany”, a UDID będzie prawidłowy.

Loves2Develop
źródło
1

Wypróbuj to narzędzie internetowe http://www.easy-udid.com . Przetestowałem to na różnych urządzeniach iOS (iOS 6 i 7) i działa dobrze. Przydatne narzędzie do szybkiego dodawania UDID klienta w profilu dewelopera

Rollins dev4mob
źródło
2
Ale ta strona prosi mnie o zainstalowanie „profilu”. IOS ostrzega mnie, że spowodowałoby to zmianę moich ustawień. Nie podoba mi się to.
Nicolas Barbulesco
1

Użyj lotu testowego, aby uzyskać UDID od testerów, ale nie używaj niezaufanego źródła, np. Http://get.udid.io/

Możesz: 1. Zaprosić testerów w wiadomości e-mail ze strony poświęconej lotom testowym. Testerzy otwierają odsyłacz w e-mailu i instalują profil z lotu testowego. Dlatego programiści mogą uzyskać identyfikatory UDID na stronie lotów testowych. 2. Dodaj te identyfikatory UDID w portalu obsługi administracyjnej Apple.

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

Proces ten nie wymaga od testerów używania Mac / PC w celu uzyskania UDID (wygodniejsze). I myślę, że lot testowy to firma, której można zaufać (nie martw się, przekazując jej UDID).

Przetestowałem tę metodę i działa na iOS 8.

oOEric
źródło
1
Czy to szkodliwe udid.io?
Ivanka Todorova
1

Kroki, aby znaleźć identyfikator UDID z iPhone'a i iPada bez korzystania z itunes

  1. Otwórz poniższy link na swoim iPhonie lub iPadzie: - http://get.udid.io/

  2. Kliknij zielony kolor przycisku - dotknij, aby znaleźć identyfikator UDID

  3. Uzyskaj UDID, kliknij przycisk INSTALL po prawej stronie u góry

4. UDID pojawi się Skopiuj UDID.

Ullas Pujary
źródło
0

Myślę, że iTunes wydaje się być jedyną odpowiedzią, co jest wyjątkowo niefortunne.

CBanga
źródło
Przeczytałeś odpowiedzi? Możesz skorzystać z informacji o systemie, narzędzia konfiguracyjnego iPhone'a, strony internetowej get.udid.io i organizatora, lotu testowego .....
LightMan,
0

Lub skorzystaj z mojego rozwiązania tutaj www.my-mo.co.uk/device/deviceinfo.php pozwoli ci uzyskać dostęp do UDID i wysłać go pocztą e-mail do kogokolwiek wybierzesz.

Alex McPherson
źródło
1
Drodzy ludzie z przyszłości , to rozwiązanie działa z iOS 7.1.
Nicolas Barbulesco
1
Jasne, lub możesz użyć tej domeny, aby uzyskać dostęp do tej samej funkcji www.my-udid.com
Alex McPherson
Szkoda. To rozwiązanie już nie działa. Adres wyświetla błąd: 404, nie znaleziono.
Nicolas Barbulesco
0

Jeśli używasz komputera Mac, możesz pobrać identyfikator UUID z „Raportu systemowego” dostępnego na stronie „O tym Macintoshu”. Po podłączeniu urządzenia otwórz sekcję USB i kliknij iPhone. Identyfikator UUID pojawia się pod „Numer seryjny”

Berbeć
źródło
0

Diawi.com zadziałało dla mnie, nie ma potrzeby podłączania iPhone'a za pomocą kabla itp .: po prostu postępuj zgodnie z zakładką „Moje urządzenie”, która poprowadzi Cię do zainstalowania ich profilu, a następnie wyświetl UDID i dodaj opcję wysłania go pocztą e-mail.

Yizhar
źródło
-3

Użyj udid.io w przeglądarce urządzenia lub zainstaluj iTools i podłącz urządzenie, aby uzyskać prawidłowy UDID.

Adarsh ​​EM

user2862579
źródło
2
„Mamy nadzieję, że jesteś testerem lub programistą aplikacji mobilnych, albo kimś w tym rodzaju”. Eee, bez obrazy, ale ta witryna wygląda na podejrzaną, a niepodpisany profil aprowizacji nie jest do końca pocieszający. Nie wspominając o tym, jak nie jestem pewien, skąd biorą UDID
Tom Kidd,
Nie ma już żadnego zatwierdzonego mechanizmu dla witryny lub narzędzia do pobierania prawdziwego identyfikatora UDID z urządzenia, jeśli nie jest ono po jailbreaku. Unikałbym rozwiązania, które mówi inaczej
oprogramowanie ewoluowało
@Schnapple Witryna korzysta z profili konfiguracyjnych zwykle używanych przez MDM (ale także przez usługi takie jak TestFlight) do pobierania identyfikatora UDID. Zgadzam się co do niepodpisanej części, ale poza tym nie powinno to stanowić problemu. Państwo może nadal uzyskać UDID z urządzenia z iOS, nie tylko z poziomu aplikacji; Identyfikatory UDID są nadal szeroko stosowane w MDM.
Calrion
1
Zrobiłem pewne badania dotyczące systemu zarządzania urządzeniami mobilnymi (MDM). Dokumenty API są udostępniane tylko programistom w przedsiębiorstwie, ale zgłoszono, że obsługują mechanizmy pobierania identyfikatora UDID, więc moje wcześniejsze oświadczenie („Nie ma już żadnego zatwierdzonego mechanizmu dla witryny lub narzędzia do pobierania prawdziwego UDID z urządzenia”) jest źle.
oprogramowanie ewoluowało
iTools? Mac OS 9 powrócił? :-)
Nicolas Barbulesco
-4

Możemy użyć identifierForVendor dla 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;
}

--Ważna uwaga ---

UDID i identifierForVendor są różne: ---

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.
HDdeveloper
źródło
2
Nie chcę znaleźć czegoś, co pozwoliłoby zidentyfikować urządzenie w aplikacji, szukam sposobu na uzyskanie identyfikatora UDID bez konieczności używania niczego poza samym urządzeniem w celu dodania go do profilu aprowizacji ad hoc. Coraz więcej osób nigdy nie synchronizuje swoich urządzeń iOS bezpośrednio z komputerem - urządzenie może się aktualizować, synchronizować ustawienia przez iCloud itp., A czasami synchronizacja z iTunes wszystko psuje. Wydaje się, że odpowiedź brzmi „nie”
Tom Kidd,
Czy wpisuję to wszystko na moim iPhonie? ^^ Gdzie? Czy otrzymam mój UDID? Myślę, że ta odpowiedź nie odpowiada na pytanie: Jak uzyskać identyfikator UDID mojego iPhone'a?
Nicolas Barbulesco