Уникальный идентификатор для приложения для iPhone

Мой MySQL установлен через доморощенный на OS X ElCaptain. Исправлено, что он запускал

brew doctor

  • , который предположил, что я запускаю

sudo chown -R $(whoami):admin /usr/local

Затем:

brew update
mysql.server start

mysql теперь запущен

31
задан Michal Sznajder 24 March 2009 в 23:39
поделиться

8 ответов

Какие ошибки Вы получаете? [[UIDevice currentDevice] uniqueIdentifier] ( отредактированный для фиксации API, Martin спасибо! ), официально рекомендуемый способ сделать это.

41
ответ дан 27 November 2019 в 21:34
поделиться

Можно также использовать CFUUID для генерации UUID. Вот некоторый код:

NSString *uuid = nil;
CFUUIDRef theUUID = CFUUIDCreate(kCFAllocatorDefault);
if (theUUID) {
  uuid = NSMakeCollectable(CFUUIDCreateString(kCFAllocatorDefault, theUUID));
  [uuid autorelease];
  CFRelease(theUUID);
}
18
ответ дан 27 November 2019 в 21:34
поделиться

Безусловно самый легкий и самый соответствующий способ получить уникальный идентификатор состоит в том, чтобы использовать механизмы, Apple явно предусматривает получение одного - [[UIDevice currentDevice] uniqueIdentifier]. Вы не можете гарантировать, что номер телефона будет уникален для устройства или что устройство будет даже иметь номер телефона. Кроме того, выполнение так является ужасной идеей, как это - определенное вторжение в конфиденциальность пользователя. Даже эти uniqueidentifier должен быть хеширован, если Вы собираетесь сохранить его всегда.

13
ответ дан 27 November 2019 в 21:34
поделиться

Это - интересная проблема, что я также изучаю решение. Вот сценарий, к которому я хотел бы обратиться.

, Что происходит, когда Вы продаете свой телефон другому человеку..., что идентификатор Устройства будет затем принадлежать кому-то еще, поэтому даже если бы приложение будет удалено из iPhone, оно могло бы быть повторно добавлено, и все эти данные были бы затем повторно связаны с новым пользователем... это плохо.

Используя Номер телефона с идентификатором MD5 Устройства было бы отличное решение. У другого, которого мы придумали, есть SQL Облегченный DB с некоторым маркером, Хешированным с идентификатором Устройства. Затем, когда приложение удалено, DB уничтожается, и все данные разъединены. Я думаю, что это могло бы быть слишком хрупким.

Какие-либо другие идеи?

Rob Ellis (PhoneGap/Nitobi)

2
ответ дан 27 November 2019 в 21:34
поделиться

Не сделали работы iPhone, но как насчет того, чтобы брать хеш чего-то уникального для телефона..., о, скажите номер телефона?

Получение iPhone номер

0
ответ дан 27 November 2019 в 21:34
поделиться

snippit:

NSString *phoneNumber = (NSString *) [[NSUserDefaults standardUserDefaults] objectForKey:@"SBFormattedPhoneNumber"]; // Will return null in simulator!
NSLog(@"Formatted phone number [%@]", phoneNumber);

I [recently] ran this code as-is on OS 2.2.1 [and OS 3.0].

It works as expected when run on the device, and returns my phone number with the full international dialing codes [ 1 in my case].

When run on the simulator, the value [returned] is a null string, so it only works on an actual iPhone device.

I did not test it on an iPod Touch.

...

Ran this code on a different device this week, and got a null value instead of the number.

On further research, it appears that the number returned by this code snippit is the number that is set up in iTunes for the device.

If you didn’t enter the iPhone’s number in iTunes at device activation, or perhaps (as in my case) if the default value wasn’t the iPhone’s number and you clicked OK anyway, such that iTunes doesn’t list the phone number when your iPhone is plugged in, this code will return a null string.

[Above is an edited concatenation of comments I recently posted to another article on this topic at http://www.alexcurylo.com/blog/2008/11/15/snippet-phone-number/]

0
ответ дан 27 November 2019 в 21:34
поделиться

Здесь есть дополнительная информация о том, как получить ее из iTunes, которая может быть полезна в целях тестирования.

0
ответ дан 27 November 2019 в 21:34
поделиться

Я успешно выполнил следующий код:

- (NSString *)stringUniqueID {
    NSString *  result;
    CFUUIDRef   uuid;
    CFStringRef uuidStr;
    uuid = CFUUIDCreate(NULL);
    assert(uuid != NULL);
    uuidStr = CFUUIDCreateString(NULL, uuid);
    assert(uuidStr != NULL);
    result = [NSString stringWithFormat:@"%@", uuidStr];
    assert(result != nil);
    NSLog(@"UNIQUE ID %@", result);
    CFRelease(uuidStr);
    CFRelease(uuid);
    return result;
}    
0
ответ дан 27 November 2019 в 21:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: