【问题标题】:Why did my unique device ID change?为什么我的唯一设备 ID 发生了变化?
【发布时间】:2014-12-03 16:21:08
【问题描述】:

我已经使用以下方法大约一个月了,没有问题。即使卸载应用程序后,设备 ID 仍保持不变。最近我注意到我的设备 ID 发生了变化。我最近在 Xcode6 上做了很多应用程序的构建。这可能是一个原因吗?我希望我能确切地知道它是什么时候改变的。这让我大吃一惊。当应用进入应用商店时,我有什么需要担心的吗?也许这只是一个 Xcode 构建问题?我只是在寻找一种简单的方法来保证唯一的设备 ID。我会使用advertisingIdentifer,但我听说将其用于其他目的,然后广告将被应用商店拒绝。代码如下:

+ (NSString *)getUserID
{
    NSString *Appname = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
    NSString *retrieveuuid = [SSKeychain passwordForService:Appname account:@"user"];

    if(retrieveuuid == NULL)
    {
        CFUUIDRef newUniqueId = CFUUIDCreate(kCFAllocatorDefault);
        retrieveuuid = (__bridge_transfer NSString*)CFUUIDCreateString(kCFAllocatorDefault, newUniqueId);
        CFRelease(newUniqueId);
        [SSKeychain setPassword:retrieveuuid forService:Appname account:@"user"];
    }

    NSLog(@"%@", retrieveuuid);
    return retrieveuuid;
}

【问题讨论】:

  • 作为旁注:更好的选择是-[UIDevice identifierForVendor]。见the docs
  • 可能你已经重启了你的设备。
  • @Riley 据我所知,如果他们卸载我的所有应用程序,identifierForVendor 将会改变。当他们卸载我的应用程序时,我不希望 id 改变。
  • @user4233467 是的,我相信这是真的。我不确定你想要的东西是否存在(我也不确定它是否不存在——我只是不知道)。

标签: ios xcode uniqueidentifier


【解决方案1】:

唯一的设备 ID 不会持续存在 这已经被问过很多次了,你应该在这里找到一些很好的信息。一个快速的谷歌搜索带来了以下内容。

https://stackoverflow.com/search?q=iOS+UDID+replacement

Persistent UDID equivalent for iOS 7?

UIDevice uniqueIdentifier Deprecated - What To Do Now?

iOS unique user identifier

一般建议是使用CFUUID 创建自己的UUID,然后将其保存在keychain

【讨论】:

  • 我的方法不就是这样吗? :S
猜你喜欢
  • 2016-01-27
  • 1970-01-01
  • 2015-01-30
  • 1970-01-01
  • 2011-11-16
  • 2013-05-13
  • 2018-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多