gpt4 book ai didi

ios - 如何以编程方式从 ios7 设备获取未更改的设备 ID

转载 作者:可可西里 更新时间:2023-11-01 17:07:34 24 4
gpt4 key购买 nike

我需要获取唯一的设备 ID 以填充数据库中的唯一用户 ID。我使用以下代码来获取它。

NSString *strApplicationUUID= [[[UIDevice currentDevice] identifierForVendor] UUIDString];

但是当我重新安装应用程序时,UUID 一直在变化。但据我所知,设备 ID 永远不会改变。为此,我将以下代码与第三方 SSKeychain 一起使用,以保存和检索旧的 UDID:

NSString *Appname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
NSString *strApplicationUUID = [SSKeychain passwordForService:Appname account:@"manab"];
if (strApplicationUUID == nil)
{
strApplicationUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
[SSKeychain setPassword:strApplicationUUID forService:Appname account:@"manab"];
}

现在的问题是当该应用程序的版本发生变化时,即应用程序 v2.0 形成应用程序 v1.0,然后 UDID 再次发生变化。所以逻辑对我来说很清楚,我并不是一直都在获取唯一的 UDID,我只是在获取 UDID 作为供应商或应用程序的基础。

如何以编程方式获得它?是否有任何其他方式获得它,请告诉我正确的方向。

最佳答案

我已经使用 advertisingIdentifier 解决了这个问题.

正如我在那里看到的那样,advertisingIdentifier 是

"An alphanumeric string unique to each device, ..."

为此,我将它用作唯一标识符(尽管它用于转换广告)。

我的代码是:

-(NSString*)UniqueAppId
{
NSString *Appname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
NSString *strApplicationUUID = [SSKeychain passwordForService:Appname account:@"manab"];
if (strApplicationUUID == nil)
{
strApplicationUUID = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
[SSKeychain setPassword:strApplicationUUID forService:Appname account:@"manab"];
}
return strApplicationUUID;
}

在需要的时候调用它

[self UniqueAppId];

关于ios - 如何以编程方式从 ios7 设备获取未更改的设备 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21795707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com