我正在订购预订应用程序。我需要从iPhone/iOS设备发送一个唯一的密钥到服务器。使用iPhone或iOS设备的唯一标识
我可以使用iPhone的GUID吗?即[UIDevice uniqueIdentifier]合法吗?法律手段将苹果接受?
用来唯一标识iPhone或iOS设备的最佳属性是什么? 如果不是,那么唯一识别设备的另一种方式是什么。
其实我需要预订参考号。由应用生成。必须是唯一的。
我正在订购预订应用程序。我需要从iPhone/iOS设备发送一个唯一的密钥到服务器。使用iPhone或iOS设备的唯一标识
我可以使用iPhone的GUID吗?即[UIDevice uniqueIdentifier]合法吗?法律手段将苹果接受?
用来唯一标识iPhone或iOS设备的最佳属性是什么? 如果不是,那么唯一识别设备的另一种方式是什么。
其实我需要预订参考号。由应用生成。必须是唯一的。
创建UUID:包含UUID的字符串。以ASCII表示的UUID的标准格式是用连字符打断的字符串,例如68753A44-4D6F-1226-9C60-0050E4C00067。
+ (NSString *)newUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return (NSString *)string;
}
这可能由[UIDevice uniqueIdentifier]生成。这将是唯一的,但苹果不会接受使用设备ID – Mann
没有我知道的GUID,你的意思是[UIDevice uniqueIdentifier]
?你可以使用它,但它在iOS 5中已被弃用,所以你最好想出一些其他方法来识别你的设备。
与iOS 6来到identifierForVendor,可以跨多个应用从相同的供应商使用,并且虽然它识别装置可以结合的iCloud的键值存储使用它例如,以确定在不同设备的用户。
奥莱Begemann解释这一切很好地在他的博客:http://oleb.net/blog/2012/09/udid-apis-in-ios-6/
苹果公司日前宣布,2013年5月将开始拒绝使用UDID的应用程序来跟踪用户行为
这是对替代UDID:
您可以创建UIApplication的,的UIDevice的类别或您prefere像这样(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];
你从哪里得到这个GUID?什么API? –
我不完全确定你的意思是“它是否合法”。 – NotMe
我建议你识别用户而不是设备。用户可以更改设备。 ;-) –