2013-08-27 4 views
1

Мне нужно получить уникальный номер iPhone программно. Я знаю, что Apple отклонит приложение, если попытаюсь получить серийный номер iPhone.Получение уникального номера iPhone

Но может быть, есть способ получить любое уникальное количество iPhone, поэтому сервер может отличить одно устройство от другого.

+0

, какой уникальный номер? Число, которое может идентифицировать каждое устройство? Используйте MAC-адрес. – Raptor

+0

Смотрите этот вопрос здесь для замены: http://stackoverflow.com/questions/15939819/udid-replacement – dna2

+0

Первым из вас никогда не должно быть [идентифицировать устройство] (http://triplesoftware.nl/2012/03/uniqueidentifier -deprecated-is-a-good-thing /), но вы должны определить пользователя. Также с iOS 7 вы не сможете идентифицировать устройство вообще. – rckoenes

ответ

3

Для каждого iPhone, MAC-адрес является уникальным (за исключением iOS Simulator). Вы можете получить информацию для идентификации устройства. Это question поможет вам получить MAC-адрес. Однако iOS7 disallows use of MAC address. Поэтому для iOS 6 или ранее вы можете использовать MAC-адрес; для следующего iOS 7 вы можете использовать следующий метод.

Начиная с iOS 6, Apple предлагает использовать Рекламный идентификатор, который находится в категории ASIdentifierManager. Пример кода:

NSUUID *uuid = [ASIdentifierManager advertisingIdentifier]; 
+0

Это не будет работать на iOS 7, но номер устройства не может быть использован в iOS 7. Таким образом, нет возможности сделать это будущее доказательством. – rckoenes

+0

@PaulGalavic см. Ссылку ссылки, а не повторять коды здесь. – Raptor

+0

@rckoenes уже упоминается в ответе – Raptor

1

Вы посмотрели identifierForVendor?

https://developer.apple.com/library/ios/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/identifierForVendor

Apple, описывают его как:

Буквенно-цифровая строка, которая однозначно идентифицирует устройство для поставщика приложения.

+1

Помните, что этот номер можно изменить, если пользователь удаляет все приложения одним и тем же поставщиком. Также все приложения другого поставщика не будут иметь одинаковый идентификатор. – rckoenes

+0

будет ли это число в iOS7? –

+0

Я не могу найти источник Apple для этого, но я нашел несколько сайтов, которые цитируют iOS7 «что нового» в документах: «Два низкоуровневых сетевых API, которые использовали для возврата MAC-адреса, теперь возвращают фиксированный значение 02: 00: 00: 00: 00: 00. Ответы на API - это sysctl (NET_RT_IFLIST) и ioctl (SIOCGIFCONF). Разработчики, использующие значение MAC-адреса, должны перенести на идентификаторы, такие как [UIDevice identifierForVendor]. влияет на все приложения, запущенные на iOS 7. " – James

0

Вы должны попробовать это, чтобы получить идентификатор пользователя вашего iPhone:

NSString *udid = [[UIDevice currentDevice] uniqueIdentifier]; 
Смежные вопросы