Чи є спосіб (з випуску iOS 7) отримати UDID без використання iTunes на ПК / Mac?


80

Я розробляю додаток для своєї компанії, і ми проходимо процес повільного впускання людей у ​​"бета-версію", додаючи їх iPad до облікових записів iOS Dev Center компанії. Звідти ми робимо спеціальну збірку для локального розповсюдження Інтранету.

На моєму останньому концерті я скеровував людей до одного з тих додатків "знайди мені мій UDID", а потім змушував їх надсилати мені знайдений UDID.

iOS 7 це вирізав - ці програми зараз уже немає, і якщо у вас він ще є, він повертає деякий GUID, який не має нічого спільного з UDID.

Отже, що мені потрібно зробити, це підключити кожну з цих речей до свого Mac, а потім отримати UDID від iTunes, що є певною клопотом (але менш нудно, ніж спроба пояснити їм, як це отримати з iTunes, припускаючи, що вони навіть встановити). І іноді він намагається синхронізуватися з моїм Mac, що, здається, не має жодного ефекту, крім встановлення профілів підготовки, які я не хочу на пристрої. І принаймні одного разу у мене iPad просто раптом вирішив оновити себе з iOS 6 до iOS 7, що, я не впевнений, пов’язане з підключенням (і в цьому випадку користувач не хотів його модернізувати).

То чи є інший спосіб отримати UDID з iPad, крім підключення до машини?

ДЛЯ ЯСНОСТІ: Я не намагаюся отримати UDID у програмі, я просто намагаюся придумати найшвидший спосіб отримати UDID для додавання до списку пристроїв у нашому профілі розробника для розповсюдження.


whatsmyudid.com : D Ви можете сказати, завантажити на AppStore UDID додаток і надіслати мені електронне повідомлення. У вас немає іншого вибору ..
Джордан Монтел

1
@JordanMontel - це крутий сайт, хоча він використовує стару версію iTunes, яка більше не відповідає зовнішньому вигляду, і команда копіювання передбачає, що ви працюєте на Mac. І додатки UDID більше не надають дійсний UDID з iOS 7
Tom Kidd

2
О так, я пам’ятаю, що з iOS 7 ... UDID, надісланий із програми, починається з FFFF ... Отже, унікальним рішенням є підключення пристрою до iTunes: s
Jordan Montel

Я перебуваю в одному човні - я розробляю програми для кількох клієнтів і не знаю, як Apple очікує від нас додавання пристроїв для внутрішнього тестування, якщо я не можу їх надіслати мені електронною поштою UDID!
програмне забезпечення еволюціонувало

2
TestFlight це вдається якось із пристроями iOS 7 за допомогою профілю конфігурації. Може розглянути, як це працює.
Джессі Русак,

Відповіді:


74

Ось результати мого дослідження:

Apple приховала UDID від усіх загальнодоступних API, починаючи з iOS 7. Будь-який UDID, який починається з FFFF, є фальшивим ідентифікатором. Програми "Надіслати UDID", які раніше працювали, більше не можна використовувати для збору UDID для тестових пристроїв. (зітхай!)

UDID відображається, коли пристрій підключено до XCode (в органайзері), і коли пристрій підключено до iTunes (хоча вам потрібно натиснути на «Серійний номер», щоб відобразити Ідентифікатор.

Якщо вам потрібно отримати UDID для пристрою, який потрібно додати до профілю підготовки, і ви не можете зробити це самостійно в XCode, вам доведеться провести їх за кроками, щоб скопіювати / вставити з iTunes.

ОНОВЛЕННЯ - див . Відповідь okiharaherbst нижче для підходу на основі сценарію, щоб дозволити тестовим користувачам надати вам свої UDID-пристрої, розмістивши файл mobileconfig на сервері


200
Ви коли-небудь відчували, що Apple ненавидить розробників?
ryan0

15
msgstr "вам доведеться провести їх за кроками, щоб скопіювати / вставити з iTunes". Цей веб-сайт може трохи допомогти: whatsmyudid.com
Гійом Альгіс

повністю відповідь. половина користувачів, для яких я маю UDID, є фальшивими, а це ті люди, які не можуть встановити мою програму розробника
bentedder

Будь ласка, додайте посилання на документ apple, якщо у вас є питання щодо цієї проблеми.
Правенкумар,

2
клацання правою кнопкою миші на значенні дозволило скопіювати значення (версія itunes для Windows - не впевнений у версії mac)
програмне забезпечення розвинулось

103

Перейдіть до http://get.udid.io/ із Safari на своєму пристрої iOS. Це працює як шарм і не вимагає ні iTunes, ні будь-якого іншого комп’ютера. Також не встановлено жодної програми.

РЕДАГУВАТИ:

Крім того, подивіться на Отримання UDID пристрою з .mobileconfig, якщо ви (зрозуміло) хотіли б, щоб цей сертифікат .mobileconfig розміщувався на вашому сервері.

ЗРОБІТЬ СВОЇ:

Зробіть копію прикладу .mobileconfig, розміщеного на вашому сервері, і напишіть 2-3 невеликі скрипти на вашій улюбленій мові для обробки такого потоку:

  1. Перейдіть у Safari до URL-адреси, що переспрямовує на enroll.mobileconfig нижче. Це змушує iOS відкрити програму Налаштування та показати профіль.
  2. Прийнявши профіль, iOS переходить назад у Safari та розміщує масив DeviceAttributes до вказаної URL-адреси enroll.mobileconfig.
  3. Дані POST будуть містити файл .plist із запитаними атрибутами (див. Приклад нижче). Одним з яких буде святий UDID.

Примітка: Ви, мабуть, повинні мати якісь зручні повідомлення. Зокрема, у нас є навіть крок 0. де користувачеві пропонується вказати своє ім’я та електронну пошту, які ми тимчасово зберігаємо в сесії HTTP, а потім перенаправити запит до профілю mobileconfig. Врешті-решт ми поєднуємо цю інформацію з даними iPhone та надсилаємо електронне повідомлення з підтвердженням. 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, розміщений iPhone на вказану 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>

1
Я знаю, і встановлення подібного сервісу для власного / клієнтського користування - це лише питання в кілька кліків.
VH-NZZ

9
НЕ використовуйте цей веб-сайт, оскільки це змушує вас встановити службу профілю, яка може зробити ваші дані доступними для власника сайту.
контрольний список

1
@checklist: Я не згоден. Дві речі, одне зауваження та один коментар: 1-е . Див. Мою редакцію вище. питання конфіденційності. 2-й . Чим корисний ваш UUID без вашого iphone? Примітка : профіль не робить ваші `дані доступними для власника сайту ', вони навіть не залишаться встановленими. Чи можете ви детальніше сказати? Коментар : якщо у вас є простіший спосіб отримати UUID, я слухаю. Якщо ви переживаєте, що ваш UUID надсилається назад і назад на вашу електронну пошту, тоді розмістіть власну послугу через SSL. Як додаткове зауваження : підключення вашого iphone до iTunes також надсилає ваші дані до Apple (і, можливо, до N $ @).
VH-NZZ

4
Привіт. Існує різниця між надсиланням ваших даних до Apple та надсиланням їх на невідомий веб-сайт. Є численні попередження щодо встановлення профілів на вашому пристрої, оскільки вони дозволяють перехоплювати ваші дані. Я б цього не робив.
контрольний список

3
@checklist: Існує поважне занепокоєння щодо того, щоб написати все, що ви публікуєте в мережі. Знову ж таки, якщо вам незручно користуватися цією послугою зручності , це FINE. EDIT частина відповіді говорить вам , як зробити свій власний, таким чином піднімаючи будь турботи ви можете мати, зберігаючи при цьому свою простоту. HTH.
VH-NZZ

17

Сподіваюся, це допоможе:

  1. Підключіть iPhone до свого MAC (я не пробував це з Windows)
  2. Клацніть на логотип Apple у верхньому лівому куті> виберіть About This Mac
  3. На вкладці Огляд > Системний звіт
  4. Апаратне забезпечення в лівій колонці> USB >
  5. потім на правій панелі виберіть iPhone
  6. у нижній панелі -> " Серійний номер "

-> І цей серійний номер - UDID


Ось чому, тому я люблю StackOverflow :) Дякую за це чудове рішення.
Jean Le Moignan

1
Після натискання серійного номера воно змінюється на UDID
Vishal

14

Якщо хтось із ваших користувачів використовує Linux, він може використовувати це з терміналу:

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

Це отримує всю інформацію про підключені USB-пристрої та друкує рядки в "Apple Inc", включаючи наступні 2 рядки.

Результат виглядає так:

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

Це спрацювало для мене на iOS5 -> iOS7, хоча я не пробував на жодному пристрої iOS4.

IMO це швидше, ніж будь-яке рішення Win / Mac / Browser, яке я знайшов, і не вимагає встановлення "програмного забезпечення".


1
Ви можете підтвердити, що "iSerial" == UDID?
програмне забезпечення розвинулось

Я використовую його як UDID в розробницькому центрі Apple, щоб чудово створювати профілі забезпечення розробкою.
компліз

1
Будь-який спосіб зробити щось подібне на Win?
Ніколас Барбулеско,


4

Я використовую утиліту iPhone Configuration Utility для читання UDID-кодів та встановлення програми Development. Все ще чудово працює на iOS7


1
В оригінальному запитанні згадувалося не використання iTunes, але вони справді задаються питанням: "чи є спосіб отримати UDID, не маючи приладу в руках, або змусити користувача встановити програмне забезпечення Apple?" і ця відповідь не вдається, що тест
програмне забезпечення еволюціонувало

Мені подобається це рішення. Чи потрібна адміністрація в Windows?
Ніколас Барбулеско,

На жаль, мені потрібна адміністрація Windows, щоб встановити утиліту налаштування iPhone 3.6.2 на Windows. Не питайте мене, чому ви повинні бути адміністратором ПК, щоб використовувати інструмент, який налаштовує iPhone ...
Ніколас Барбулеско,

3

Підключіть його та запустіть це з командного рядка:

system_profiler SPUSBDataType

Шукати:

Serial Number: xxxx

1
COOL! Мені подобається це рішення. Дякую. Я додав трохи awk наприкінці, щоб скласти легко відсканований список:system_profiler SPUSBDataType | awk '/:$/{sub(/^ */,"");name=$0}/Serial Number:/{id=$3;print name,id}'
Тодд Леман

Приємно. Але ця відповідь потребує більш детальної інформації. Де підключити його? У мене є якась ідея ... ;-)
Ніколас Барбулеско,

2

Нехай вони створять обліковий запис testflightapp.com .

Це дуже корисно для бета-тестування - і, на мою думку, саме для цього вам потрібні удіди.

Ви можете надіслати їм посилання для завантаження на свій додаток (яке можна знайти в крані дозволів внизу сторінки), і воно повідомить їм, що їх udid ще не перевірено. Тоді це скаже їм їх удід! Вони можуть скопіювати та вставити це та надіслати вам текст.


2

Знайшов приємний спосіб з цим впоратись: додайте додаток на testFlight.com і дайте посилання користувачеві, якому ви хочете його UDID. Він побачить повідомлення про помилку із повідомленням "UDID вашого пристрою: xxxxxx не зареєстровано", і UDID буде правильним.


1

Спробуйте цей Інтернет-інструмент http://www.easy-udid.com . Я протестував його на різних пристроях iOS (iOS 6 і 7), і він працює нормально. Інструмент для швидкого додавання UDID замовника в профіль розробника


2
Але цей сайт просить мене встановити "профіль". І iOS попереджає мене, що це змінить мої налаштування. Мені це не подобається.
Ніколас Барбулеско,

1

Будь ласка, використовуйте тестовий політ, щоб отримати UDID від тестувальників, але не використовуючи ненадійне джерело, наприклад http://get.udid.io/

Ви можете 1. Запросити тестувальників електронною поштою з веб-сторінки тестового польоту. Тестери відкривають посилання в електронній пошті та встановлюють профіль із тестового польоту. Тому розробники можуть отримати UDID на веб-сторінці тестового польоту. 2. Додайте ці UDID на портал забезпечення Apple.

(Посилання: http://help.testflightapp.com/customer/portal/articles/829537-how-does-it-work- )

Процес не вимагає від тестувальників використання Mac / PC для отримання UDID (зручніше). І я думаю, що тестовий політ - це компанія, якій можна довіряти (не хвилюйтеся, передаючи UDID цій компанії).

Я протестував цей метод, і він працює на iOS 8.


1
Чи шкідливо udid.io?
Іванка Тодорова

1

Кроки для пошуку UDID з IPhone та iPad без використання iTunes

  1. Відкрийте посилання нижче на вашому iPhone або iPad: - http://get.udid.io/

  2. Натисніть кнопку Зелений колір - натисніть, щоб знайти UDID

  3. Отримайте ваш UDID, з’явиться, натисніть на праву верхню кнопку ВСТАНОВИТИ

4. З'явиться UDID Скопіюйте UDID.


0

Я думаю, що iTunes виглядає єдиною відповіддю, що надзвичайно прикро.


Чи читали ви відповіді? Ви можете використовувати системну інформацію, утиліту налаштування iphone, веб-сторінку get.udid.io та органайзер, testflight .....
LightMan

0

Або скористайтеся моїм рішенням тут www.my-mo.co.uk/device/deviceinfo.php , дозволить вам отримати доступ до UDID та надіслати його електронною поштою тому, кого ви також оберете.



1
Звичайно, або ви можете використовувати цей домен для доступу до тієї самої функції www.my-udid.com
Алекс Макферсон,

Шкода. Це рішення вже не працює. Адреса видає помилку: 404, не знайдено.
Ніколас Барбулеско,

0

Якщо ви використовуєте mac, ви можете отримати UUID із "Системного звіту", доступного в "Про цей Mac". Коли пристрій підключено, відкрийте розділ USB та натисніть iPhone. UUID відображається під "Серійний номер"


0

diawi.com працював у мене, немає необхідності підключати iPhone кабелем чи іншим чином: просто перейдіть на їх вкладку "Мій пристрій", яка призведе до встановлення профілю їх надання, а потім відобразить UDID та додасть опцію надсилати його електронною поштою.


-3

Будь ласка, використовуйте udid.io у браузері вашого пристрою Або, будь-ласка, встановіть iTools і налаштуйте пристрій для отримання правильного UDID.

Адарш Е.М.


2
"Ми сподіваємось, що ви розробник тестів або розробник мобільних додатків або подібний до них". Е-е-е, не ображайтесь, але цей сайт виглядає якось похмуро, а непідписаний профіль забезпечення не зовсім втішний. Не кажучи вже про те, як я не впевнений, як вони отримують UDID
Том Кідд,

Більше не існує жодного затвердженого механізму для сайту чи інструменту для отримання реального UDID з пристрою, якщо він не зламаний. Я б уникнув будь-якого рішення, яке говорить про інше
програмне забезпечення розвинулось

@Schnapple Сайт використовує профілі конфігурації, які зазвичай використовуються MDM (але також використовуються такими службами, як TestFlight) для отримання UDID. Я погоджуюсь з непідписаною частиною, але крім того, що це не повинно створювати проблем. Ви все ще можете отримати UDID з пристрою iOS, тільки не з програми; UDID все ще широко використовуються в MDM.
Calrion,

1
Провів деякі дослідження системи управління мобільними пристроями (MDM). Документи API випускаються лише для розробників підприємств, але повідомляється, що вони підтримують механізми отримання UDID, тому моя попередня заява ("Більше не існує жодного затвердженого механізму для сайту чи інструмента для отримання реального UDID з пристрою") неправильно.
програмне забезпечення розвинулось

iTools? Mac OS 9 повернувся? :-)
Ніколас Барбулеско

-4

Ми можемо використовувати ідентифікаторForVendor для 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;
}

--Важлива примітка ---

UDID та ідентифікаторForVendor відрізняються: ---

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.

2
Я не хочу отримати щось для ідентифікації пристрою в додатку, я шукаю спосіб отримати UDID, не використовуючи нічого, крім самого пристрою, для цілей додавання його до профілю надання спеціальних послуг. Все більша кількість людей ніколи не синхронізує свої пристрої iOS із комп’ютером - пристрій може самостійно оновлюватись, синхронізувати налаштування через iCloud тощо, а іноді синхронізація з iTunes все псує. Відповідь "ні"
Том Кідд,

Чи набираю я все це на своєму iPhone? ^^ Де? Це дасть мені мій UDID? Я думаю, що ця відповідь не відповідає на питання: Як отримати UDID свого iPhone?
Ніколас Барбулеско,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.