Можно ли передавать iPhone UDID на мой сервер?

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

И, в том числе передача телефонных номеров. В случае WhatsApp, он автоматически распознает номера моих друзей. Я думаю, что это невозможно без какой-либо передачи данных.

4 ответа

Решение

Вам разрешено передавать UDID устройства на ваши серверы. Вот для чего он предназначен.

Доступ к UDID является основанием для отказа в App Store. См. Альтернативу использованию UDID на /questions/18989611/chto-ispolzovat-esli-ne-iphone-udid/18989620#18989620

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

Я думаю, это причина, по которой меня отвергают: неясно, хранятся ли данные пользователя на вашем собственном сервере / службе.

Важно отметить разницу между UDID и UUID.

UDID "уникальный идентификатор устройства" зависит от оборудования. Это никогда не меняется для конкретного устройства. По этой причине это стало проблемой конфиденциальности, и Apple блокирует приложения, которые пытаются использовать это. В результате Apple сгенерировала хеш с "идентификатором устройства", особенно для рекламы. Этот новый ID-хеш называется IFA и доступен в iOS 6.0+.

UUID "универсально уникальный идентификатор" не зависит от аппаратного обеспечения. Это хеш, используемый для идентификации устройства; но не особо абсолютное значение. Например, PhoneGap генерирует UUID на основе свойств устройства; это то, что вы получаете, когда делаете device.uuid. Если вы удалите приложение и переустановите, вы получите новый идентификатор хеша. UUID не блокируется Apple.

Я думаю, что лучшим решением в вашем случае будет использование IFA с OpenUDID в качестве резервной копии для iOS < 6.0.

Вот код, который мы используем. Если IFA недоступен, получите OpenUDID. [[Вы должны установить OpenUDID, подробнее об этом здесь, https://github.com/ylechelle/OpenUDID.]]

NSString* uuid = nil;
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
    // IOS 6 new Unique Identifier implementation, IFA
    uuid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else {
    // Before iOS6 (or if IFA disabled) you shoud use a custom implementation for uuid
    // Here I use OpenUDID (you have to import it into your project)
    // https://github.com/ylechelle/OpenUDID
    NSString* openUDID = [OpenUDID value];
    uuid = [OpenUDID value];
}
Другие вопросы по тегам