我正在訂購預訂應用程序。我需要從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
我建議你識別用戶而不是設備。用戶可以更改設備。 ;-) –