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

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

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

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

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

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

БЫТЬ ЧРЕЗВЫЧАЙНЫ: Я не пытаюсь получить UDID в приложении, я просто пытаюсь вспомнить самый быстрый способ добавить UDID в список устройств в нашем профиль разработчика для распространения.

Ответ 1

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

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

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

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

ОБНОВЛЕНИЕ - см. ответ okiharaherbst ниже для подхода, основанного на script, чтобы позволить тестовым пользователям предоставлять вам UDID своих устройств путем размещения файла mobileconfig на сервере

Ответ 2

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

EDIT:

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

СДЕЛАТЬ СОБСТВЕННОЕ:

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

  • Перейдите в Safari к URL-адресу, перенаправляющемуся на enroll.mobileconfig ниже. Это заставляет iOS открывать приложение "Настройки" и показывать профиль.
  • После принятия профиля iOS переключается обратно в Safari и отправляет массив DeviceAttributes по указанному URL-адресу enroll.mobileconfig.
  • Данные POST будут содержать файл .plist с запрошенными атрибутами (см. пример ниже). Один из них будет святым UDID.

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

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>

sample.plist POSTed от 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>

Ответ 3

Надеюсь, это поможет:

  • Подключите iPhone к MAC (я не пробовал это с окнами)
  • Нажмите Логотип Apple в верхнем левом углу > выберите Об этом Mac
  • В Обзор вкладкa > Отчет о системе
  • Аппаратное обеспечение в левом столбце > USB >
  • затем в правой панели выберите iPhone
  • в нижней панели → " Серийный номер"

- > И этот серийный номер UDID

Ответ 4

Если какой-либо из ваших пользователей использует linux, он может использовать это из терминала:

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

Получает всю информацию для ваших подключенных устройств USB и печатает строки с "Apple Inc", включая следующие две строки.

Результат выглядит следующим образом:

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

Это сработало для меня на iOS5 → iOS7, но я нигде не пытался на любых устройствах iOS4.

IMO это быстрее, чем любое решение Win/Mac/Browser, которое я нашел и не требующее установки программного обеспечения.

Ответ 5

TestFlight, похоже, может извлечь UDID после регистрации пользователя:

https://testflightapp.com

Ответ 6

Я использую iPhone Configuration Utility для чтения UDID и установки приложения для разработки. Все еще отлично работает на iOS7

Ответ 7

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

system_profiler SPUSBDataType

Ищите:

Serial Number: xxxx

Ответ 8

Попросите их создать учетную запись testflightapp.com.

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

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

Ответ 9

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

Ответ 10

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

Ответ 11

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

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

(Ссылка: http://help.testflightapp.com/customer/portal/articles/829537-how-does-it-work-)

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

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

Ответ 12

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

Ответ 13

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

Ответ 14

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

Ответ 15

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

Ответ 16

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

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

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

  • Появится ваш UDID, нажмите на верхнюю часть кнопки INSTALL

4. Появится UDID Копировать UDID.

Ответ 17

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

Adarsh ​​E M

Ответ 18

Мы можем использовать идентификатор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.