gpt4 book ai didi

ios - 在设备上卸载 ios 应用程序后如何在 ios 中保留 identifierForVendor?

转载 作者:IT王子 更新时间:2023-10-29 07:33:25 24 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序,它调用 Web 服务进行登录,那时我将登录凭据连同供应商标识符 (identifierForVendor) 一起发送到 Web 服务器,以便为这些凭据唯一地识别设备。因此用户只能拥有一个设备和一个凭证。

我得到了 identifierForVendor

NSString *uuid = [[UIDevice currentDevice] identifierForVendor].UUIDString

此标识符将存储在网络服务器的数据库和设备数据库中。下次当用户打开应用程序并尝试从网络服务器下载数据时,首先用户设备上的本地标识符 ForVendor 将与存储在网络服务器上的标识符进行比较。

用户卸载应用程序并重新安装时出现问题,我发现identifierForVendor被更改了。因此用户无法继续。

我阅读了苹果文档 UIDevice Documentation

正如那里提到的,如果来自同一供应商的所有应用程序都从设备上卸载,那么在新安装来自该供应商的任何应用程序时,将采用新的标识符ForVendor。

那么我该如何处理呢?

最佳答案

你可以把它放在钥匙串(keychain)里

-(NSString *)getUniqueDeviceIdentifierAsString
{

NSString *appName=[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey];

NSString *strApplicationUUID = [SSKeychain passwordForService:appName account:@"incoding"];
if (strApplicationUUID == nil)
{
strApplicationUUID = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
[SSKeychain setPassword:strApplicationUUID forService:appName account:@"incoding"];
}

return strApplicationUUID;
}

关于ios - 在设备上卸载 ios 应用程序后如何在 ios 中保留 identifierForVendor?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21878560/

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