我是iphone开发的初学者,我创建了一个应用程序。现在我需要通过点击按钮了解应用程序中的设备ID。请帮帮我 提前致谢
答案 0 :(得分:43)
使用此
UIDevice *device = [UIDevice currentDevice];
NSString *uniqueIdentifier = [device uniqueIdentifier];
<强>更新强>
Apple拥有已弃用的唯一标识符,因此现在以下代码(来自Melvin Sovereign的评论)是合适的:
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
答案 1 :(得分:5)
有趣的是,Apple已经弃用了iOS 5中的uniqueIdentifier。这是相关的TechCrunch文章: http://techcrunch.com/2011/08/19/apple-ios-5-phasing-out-udid/
Apple建议您不再唯一地识别设备,而是识别用户。在大多数情况下,这是一个很好的建议,尽管在某些情况下仍然需要全局唯一设备ID。这些场景在广告中很常见。因此,我写了一个非常简单的插件库,它完全复制了现有的行为。
在一个无耻的自我推销插件中,我会在这里链接它,希望有人发现它有用。此外,我欢迎所有人和任何反馈/批评: http://www.binpress.com/app/myid/591
答案 2 :(得分:2)
我认为此代码可能会对您有所帮助;)
NSString * id = [UIDevice currentDevice].uniqueIdentifier;
答案 3 :(得分:1)
您可以使用NSUUID *identifierForVendor
[[UIDevice currentDevice] identifierForVendor]
答案 4 :(得分:0)
在Swift中
var uniqueId=UIDevice.currentDevice().identifierForVendor.UUIDString as String
println("Your device identifires =>\(uniqueId)")
答案 5 :(得分:0)
我知道,这是一个很老的问题,但这就是我解决问题的方法。如果创建“唯一设备令牌”的线程永不停止,它可能会失败,但它对我有用。
-(NSString*)getUniqueDeviceToken
{
__block NSString* UDTToReturn = @"UDTCouldNotBeCreatedSuccessfully,PlatformNotSupported,Simulator,iOSVer<11";
dispatch_semaphore_t semaphoretowaitforudtcreation = dispatch_semaphore_create(0);
if ([DCDevice.currentDevice isSupported])
{
[DCDevice.currentDevice generateTokenWithCompletionHandler:^(NSData * _Nullable token, NSError * _Nullable error)
{
if (error)
{
UDTToReturn = error.description;
dispatch_semaphore_signal(semaphoretowaitforudtcreation);
}
else
{
UDTToReturn = [token base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
dispatch_semaphore_signal(semaphoretowaitforudtcreation);
}
}];
}
dispatch_semaphore_wait(semaphoretowaitforudtcreation, DISPATCH_TIME_FOREVER);
return UDTToReturn;
}