2013-09-21 2 views
4

в XCode 4.6, iOS 6.1, мы используем CoreTelephony для получения IMEI, так же, как упоминается в вопросе get IMEI on iPhone with CoreTelephony?, но после перехода на iOS7 и XCode 5 он больше не работает. Моя система рассматривает IMEI как нерушимый способ идентифицировать мобильный телефон и гарантировать, что он связан с конкретным пользователем, а также другие проблемы безопасности зависят от этого идентификатора. С новым iOS код не работает, и мы не нашли способ его получить.Получить IMEI для iOS7 программно

Мой главный вопрос: какие параметры мне нужно получить IMEI в iOS7/XCode 5?

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

+0

Вы заявляете, что IMEI «гарантирует, что он связан с конкретным пользователем», что неверно. Несколько пользователей могут использовать одно и то же устройство. – Jasarien

+1

Не это приложение, мы предлагаем, что это приложение не будет работать, если мобильный клонирован. Я могу подумать, что политики безопасности Apple помогают защитить устройство от копирования и личность владельца, но я не нашел конкретной информации об этом. Кроме того, у меня уже есть билет на поддержку яблока. Суть вопроса заключалась в том, чтобы иметь несколько линий исследования. –

+0

Вы полностью не поняли мой комментарий.Я не говорю о гипотетическом телефонном копировании или клонировании IMEI - просто тот факт, что я могу войти в Facebook на своем телефоне, а затем передать его другу, который подписывается и возвращается в него как сам - два пользователя на одном и том же устройство. Поэтому IMEI телефона не гарантирует ссылку на конкретного пользователя. – Jasarien

ответ

2

Если не найдено частного API-решения - наша организация продвигается вперед, помещая IMEI и телефон # в наши корпоративные приложения в качестве охраняемых параметров приложения.

С новым распознаванием штрих-кодов iOS7 на основе камеры - IMEI можно даже сканировать из телефонной коробки во время первоначального набора и развертывания, а не вводить вручную.

Мы также рассмотрели возможность отслеживания идентификатора ForVendor UUID в базе данных и т. Д., Ссылаясь на IMEI/Phone #, но поскольку он может меняться, и поскольку наши исторические данные основаны на IMEI, не было смысла добавлять этот уровень сложности слежения к полуполезный идентификатор, который не возвращается к универсальному значимому механизму отслеживания, например Phone/IMEI.

+0

Спасибо за ваш ответ, мне понравилось. Это будет корпоративное приложение, но мы хотим предложить его для публичного использования. Конечно, он ориентирован на конкретный сектор: люди, которые не делят свои устройства. Мы решили отслеживать список доступных данных, в частности идентификаторForVendor и cloudId, также мы будем запрашивать код доступа в определенных ситуациях. Пока мы доверяем, что клонированное устройство не будет иметь тот же идентификаторForVendor, что и исходный, и что APN также могут отличить это, но мы проверяем. –

1

Я не очень уверен в количестве IMEI. в iOS7 Apple изменила способ предоставления уникального идентификатора. Они также прекратили предоставлять MAC-адрес Wi-Fi-карты. Теперь они предоставляют уникальный идентификатор для каждого устройства и App Vender. См. Примечания к выпуску iOS 7. Вы можете использовать этот уникальный идентификатор.

2

Вы не должны получать IMEI на первом месте, поскольку используете частный API, и это противоречит правилам Apple.

Чтобы получить уникальный идентификатор устройства, вы должны использовать метод identifierForVendor. Это всегда будет возвращать один и тот же идентификатор во всех приложениях, работающих на одном телефоне. Подробнее см. В документах apple.

+6

не все следуют правилам магазина приложений Apple. Просто FYI. – malhal

+0

Я уже читал объявления Apple с iOS7. –

+2

Я не согласен с тем, что я не могу получить доступ к информации о прошивке устройства, но это не главное. Проблема с идентификаторомForVendor заключается в изменении при удалении приложения (у меня есть только одно приложение). Значения прошивки являются статическими. IdentifierForVendor нельзя использовать, чтобы гарантировать, что устройство будет одинаковым, если приложение будет удалено и установлено снова. –

2

Используйте identifierForVendor, чтобы получить «буквенно-цифровую строку, которая однозначно идентифицирует устройство у поставщика приложения (только для чтения)».

Метод описан в Справочнике классов UIDevice.

+4

, но поскольку он изменяется после удаления приложения, это не полезно для идентификации устройства. –

0

Вы можете использовать advertisingIdentifier, который уникален для каждого устройства. См: Apple documentation.

Насколько я могу судить, advertisingIdentifier и identifierForVendor являются только 2 уникальных идентификаторов можно использовать.

Смежные вопросы