Создайте свой собственный UUID и сохраните его в связке ключей. Таким образом, оно сохраняется даже при удалении вашего приложения. Во многих случаях это также сохраняется, даже если пользователь мигрирует между устройствами (например, полное резервное копирование и восстановление на другое устройство).
По сути, он становится уникальным идентификатором пользователя . (даже лучше, чем идентификатор устройства ).
Пример:
Я определяю пользовательский метод для создания UUID
как:
- (NSString *)createNewUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}
Затем вы можете сохранить его в KEYCHAIN
при первом запуске вашего приложения. Так что после первого запуска мы можем просто использовать его из цепочки для ключей, не нужно его восстанавливать. Основная причина использования Цепочки для ключей для хранения: Когда вы установите UUID
в Цепочку для ключей, она будет сохраняться, даже если пользователь полностью удалит Приложение, а затем установит его снова. , Таким образом, это постоянный способ его хранения, что означает, что ключ будет уникальным во всех отношениях.
#import "SSKeychain.h"
#import <Security/Security.h>
При запуске приложения укажите следующий код:
// getting the unique key (if present ) from keychain , assuming "your app identifier" as a key
NSString *retrieveuuid = [SSKeychain passwordForService:@"your app identifier" account:@"user"];
if (retrieveuuid == nil) { // if this is the first time app lunching , create key for device
NSString *uuid = [self createNewUUID];
// save newly created key to Keychain
[SSKeychain setPassword:uuid forService:@"your app identifier" account:@"user"];
// this is the one time process
}
Загрузите файл SSKeychain.m и .h из sskeychain и перетащите файл SSKeychain.m и .h в свой проект и добавьте «Security.framework» в свой проект.
Чтобы потом использовать UUID, просто наберите:
NSString *retrieveuuid = [SSKeychain passwordForService:@"your app identifier" account:@"user"];