Есть ли способ с момента выпуска iOS 7 получить UDID без использования iTunes на ПК / Mac?


Я разрабатываю приложение для своей компании, и мы проходим через процесс медленного ввода людей в "бета", добавляя свои iPad в учетные записи iOS Dev Center компании. Оттуда мы делаем специальную сборку для распространения в локальной интрасети.

на моем последнем концерте я бы направил людей в одно из этих приложений "find my UDID for me", а затем заставил их отправить мне найденный UDID.

iOS 7 отрезал Это - эти приложения все ушли сейчас, и если у вас все еще есть во-первых, он возвращает некоторый GUID, который не имеет ничего общего с UDID.

Итак, что мне нужно сделать, это подключить каждую из этих вещей к моему Mac, а затем получить UDID из iTunes, что является своего рода хлопот (но менее утомительно, чем пытаться объяснить им, как получить его из iTunes, предполагая, что они даже установили его). И иногда он пытается синхронизировать с моим Mac, что, похоже, не имеет никакого эффекта, кроме как использовать профили подготовки, которые я не хочу на устройстве. И по крайней мере один раз я если бы iPad просто внезапно решил обновить себя с iOS 6 до iOS 7, который я не уверен, связан с подключением (и в этом случае пользователь не хотел его обновлять).

Итак, есть ли другой способ получить UDID с iPad, кроме подключения его к машине?

ЧТОБЫ БЫЛО ПОНЯТНО: я не пытаюсь получить UDID в приложении, я просто пытаюсь придумать самый быстрый способ получить UDID для добавления в список устройств в нашем профиле разработчика для распределение.

18 78

18 ответов:

вот результаты моих исследований:

Apple скрыла UDID от всех публичных API, начиная с iOS 7. Любые идентификаторы, которые начинаются с ffff является поддельным удостоверением личности. Приложения "отправить UDID", которые ранее работали, больше не могут использоваться для сбора UDID для тестовых устройств. (вздох!)

UDID отображается, когда устройство подключено к XCode (в органайзере), и когда устройство подключено к iTunes (хотя вам нужно нажать на "серийный номер", чтобы получить идентификатор для отображения.

Если вам нужно получить UDID для устройства, чтобы добавить его в профиль подготовки, и не можете сделать это самостоятельно в XCode, вам придется пройти через шаги, чтобы скопировать/вставить его из iTunes.

обновление -- см. okiharaherbst это!--10--> ниже для сценария на основе подхода, чтобы позволить тестовым пользователям предоставить вам свои UDIDs устройства, разместив файл mobileconfig на сервере

перейдите к http://get.udid.io/ из Safari на вашем устройстве iOS. Он работает как шарм и не требует ни iTunes, ни любого другого компьютера. Приложение также не установлено.

EDIT:

кроме того, посмотрите на получение UDID устройства .mobileconfig если Вы (понятно) предпочли бы это .сертификат mobileconfig размещен на вашем сервере.

СДЕЛАЙТЕ СВОЙ СОБСТВЕННЫЙ:

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

  1. перейдите в Safari на URL-адрес, перенаправляющий на Регистрация.mobileconfig ниже. Это заставляет iOS открыть приложение "Настройки" и показать профиль.
  2. после принятия профиля iOS переключается обратно в Safari и отправляет массив DeviceAttributes на указанный URL-адрес enroll.mobileconfig.
  3. POST-данные будет содержать .plist файл с требуемыми атрибутами (см. пример ниже). Одним из которых будет святой УДИД.

замечание: вы, вероятно,должны иметь некоторые дружественные сообщения. В частности, у нас даже есть Шаг 0. где пользователю предлагается указать свое имя и адрес электронной почты, которые мы временно храним в сеансе HTTP, а затем перенаправить запрос в профиль mobileconfig. В конечном итоге мы сопоставляем эту информацию с данными iPhone и отправляем дружественный подтверждение по электронной почте. ХТ.

Регистрация.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. Подключите iPhone к вашему MAC(Я не пробовал это с Windows)
  2. нажать на кнопку логотип Apple в левом верхнем углу > выберите Об Этом Mac
  3. на обзор tab>Отчет О Системе
  4. оборудование в левой колонке > USB>
  5. затем на правой панели выберите iPhone
  6. в нижней панели ->"серийный номер"

-> и серийный номер другое

Если кто-либо из ваших пользователей работает под управлением 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, которое я нашел и не требует "установка программного обеспечения.

TestFlight как приложение, кажется, быть в состоянии извлечь идентификатор UDID после того, как пользователь подпишется:

https://testflightapp.com

Я использую утилиту настройки iPhone для чтения UDIDs и установки приложения для разработки. По-прежнему отлично работает на iOS7

подключите его и запустите это из командной строки:

system_profiler SPUSBDataType

ищут:

Serial Number: xxxx

пусть они создадут testflightapp.com Аккаунт.

Это очень полезно для бета-тестирования - который я предполагаю,что вам нужны udids для.

вы можете отправить им ссылку для загрузки в ваше приложение (найдено в разрешениях нажмите в нижней части страницы), и он скажет им, что их udid еще не был проверен. Затем скажи им, что их трудности! Они могут скопировать и вставить это и текст его к вам.

нашел хороший способ справиться с этим: Добавьте приложение в testFlight.com и дайте ссылку пользователю, которого вы хотите его UDID. Он увидит сообщение об ошибке "ваше устройство UDID: xxxxxx не зарегистрировано", и UDID будет правильным.

попробуйте этот онлайн-инструмент http://www.easy-udid.com. я тестировал его на различных устройствах iOS (iOS 6 и 7), и он отлично работает. Инструмент для быстрого добавления UDID клиента в профиль разработчика

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

вы можете 1. Пригласите тестировщиков по электронной почте с веб-страницы тестового полета. Тестировщики открывают ссылку в электронной почте и устанавливают профиль из тестового полета. Поэтому разработчики могут получить UDIDs на веб-странице тестового полета. 2. Добавить их названием на портале подготовки.

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

процесс не требует, чтобы тестеры использовали Mac/ PC для получения UDID (более удобного). И я думаю, что тестовый полет-это компания, которой можно доверять (не беспокойтесь при передаче UDID этой компании).

я протестировал этот метод, и он работает на iOS 8.

шаги по поиску UDID с IPhone и IPad без использования itunes

  1. откройте ссылку ниже в вашем iPhone или iPad : -http://get.udid.io/

  2. нажмите на кнопку зеленый цвет-Нажмите, чтобы найти UDID

  3. получите ваш UDID появится, нажмите на правой стороне верхней кнопки установки

4 . Появится UDID скопируйте UDID.

Я думаю, что iTunes выглядит единственным ответом, который крайне неудачен.

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

Если вы используете mac, вы можете получить UUID из "системного отчета", доступного из "Об этом Mac."С подключенным устройством откройте раздел USB и нажмите на iPhone. UUID отображается под "серийным номером"

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

пожалуйста, используйте udid.io в браузере вашего устройства или, Пожалуйста, установите iTools и подключите устройство, чтобы получить правильный UDID.

Адарш Е М

можно использовать identifierForVendor для 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 и identifierForVendor отличаются: - - -

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.