我正在订购预订应用程序.我需要从iPhone/iOS设备向服务器发送一个唯一的密钥.
我可以使用iPhone的GUID吗?即[UIDevice uniqueIdentifier]是否合法?法律意味着苹果会接受吗?
用于唯一标识iPhone或iOS设备的最佳属性是什么?如果没有,那么唯一识别设备的另一种方式是什么.
其实我需要预订参考编号.应用程序生成 必须是独一无二的
Apple已宣布将于2013年5月开始拒绝使用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
Run Code Online (Sandbox Code Playgroud)
UUID()就是这个功能
NSString* UUID () {
CFUUIDRef uuidRef = CFUUIDCreate(NULL);
CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef);
CFRelease(uuidRef);
return (__bridge NSString *)uuidStringRef;
}
Run Code Online (Sandbox Code Playgroud)
这将生成一个存储在NSUserDefault中的唯一标识符,以便在应用程序需要时重复使用 - 此标识符将独立于应用程序安装而不是设备,但可用于跟踪订阅APN服务等的设备数量...
之后,您可以这样使用它:
NSString *uuid = [[UIApplication sharedApplication] getUUID];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14323 次 |
| 最近记录: |