Уникальные идентификаторы для iOS MDM
поскольку Apple не одобряет уникальный идентификатор устройства для приложений, каков наилучший подход для связывания корпоративного приложения на устройстве, зарегистрированном в MDM?
из справочного документа протокола MDM регистрация по-прежнему использует UDID для процедуры регистрации.
мы не можем использовать новый identifierForVendor, потому что он не совпадает с UDID для регистрации.
позвольте мне обновить, как я реализовал свой MDM решение,
- устройство будет регистрироваться на сервере MDM с маркером и UDID устройства (тот, который Apple удаляет API)
- устройство отправит информацию об устройстве на MDM-сервер (Wifi MAC Addr, серийный номер, версия ОС и другая информация)
- будет клиентское приложение, которое будет разговаривать с сервером MDM через RESTful API. (Ранее я использовал UDID в качестве идентификатора ключа)
Я думал об использовании MAC-адреса, но в последнем для iOS 7, система всегда будет возвращать значение 02:00:00:00:00:00.
мы также не можем получить серийный номер устройства.
Итак, мой вопрос снова, как мы можем знать, что это приложение на этом устройстве принадлежит к этой регистрации MDM на сервере (3). Потому что теперь приложение не имеет общего ключа, который будет передан с процессом регистрации. Как сервер узнает, какое устройство какое?
спасибо.
5 ответов
лучший и, возможно, единственный способ-использовать новые возможности конфигурации управляемых приложений в iOS 7. Вы можете заставить MDM нажать что-то вроде ключа API для вашего приложения. Затем ваше приложение представляет этот ключ в обратном вызове на ваш сервер MDM или любую другую веб-службу.
Как только вы нажмете свою конфигурацию в свое приложение, вы можете вытащить ключ API с чем-то вроде ниже. Большинство основных решений MDM уже поддерживают этот тип функциональности в их новейшая версия.
NSDictionary *config = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"com.apple.configuration.managed"];
NSString *apiKey = config[@"kAPIKey"];
if (apiKey) {
//We got an API key and we can use it
} else {
//We didn't get an API key...something has gone wrong
}
вы можете создать корпоративное приложение и установить его через MDM. После регистрации устройства MDM может установить на устройство корпоративное приложение. MDM также может установить конфигурацию по умолчанию в NSUserDefault.
приложение может читать его всякий раз, когда он запускается, как описано выше в lidsinker'ы ответ.
Apple обеспечить пример здесь. https://developer.apple.com/library/content/samplecode/sc2279/Introduction/Intro.html
Я бы прочитал этот источник, который я нашел несколько месяцев назад;http://www.doubleencore.com/2013/04/unique-identifiers/
оттуда я использовал метод CFUID, который хорошо мне служил.
NSString *uniqueID = [NSString stringWithFormat:@"%@", CFUUIDCreateString(NULL, CFUUIDCreate(NULL))];
в iOS 7 Apple теперь всегда возвращает фиксированное значение при запросе MAC, чтобы специально помешать MAC в качестве базы для схемы ID. Поэтому теперь вы действительно должны использовать - [uidevice identifierForVendor] или создать UUID для каждой установки.