Уникальный идентификатор устройства - PullRequest
2 голосов
/ 23 июня 2011

У каждого устройства Apple (iPad / iPhone / iPod) есть только один уникальный идентификатор для диапазона его использования?Будет ли следующий код всегда возвращать этот идентификатор?

[[UIDevice currentDevice] uniqueIdentifier];

Позволит ли Apple использовать этот метод в развернутом приложении?

Ответы [ 2 ]

3 голосов
/ 23 июня 2011

UDID (uniqueidentifier) ​​предназначен для жизни, однако, не уверен, счастлив ли Apple, что вы вызвали этот метод для его получения.

1 голос
/ 05 апреля 2013

Apple объявила, что в мае 2013 года начнет отклонять приложение, которое использует UDID для отслеживания поведения пользователя

это альтернатива UDID:

Вы можете создать категориюUIApplication, UIDevice или как вы предпочитаете, как это (пример ARC)

@interface UIApplication (utilities)
- (NSString*)getUUID;
@end

@implementation UIApplication (utilities)

- (NSString*)getUUID {

    NSUserDefaults *standardUserDefault = [NSUserDefaults standardUserDefaults];

    static NSString *uuid = nil;

    // try to get the NSUserDefault identifier if exist
    if (uuid == nil) {

        uuid = [standardUserDefault objectForKey:@"UniversalUniqueIdentifier"];
    }

    // if there is not NSUserDefault identifier generate one and store it
    if (uuid == nil) {

        uuid = UUID ();
        [standardUserDefault setObject:uuid forKey:@"UniversalUniqueIdentifier"];
        [standardUserDefault synchronize];
    }

    return uuid;
}

@end

UUID () - это функция

NSString* UUID () {

    CFUUIDRef uuidRef = CFUUIDCreate(NULL);
    CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);
    CFRelease(uuidRef);
    return (__bridge NSString *)uuidStringRef;
}

, которая генерирует уникальный идентификатор, сохраненный в NSUserDefault, для повторного использования всякий раз, когдаприложению это нужно - этот идентификатор будет уникальным в связи с тем, что приложение устанавливается не на устройство, но его можно использовать, например, для отслеживания количества устройств, подписанных на услугу APN и т. д. *

После этого вы можетеиспользуйте это следующим образом:

    NSString *uuid = [[UIApplication sharedApplication] getUUID];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...