为什么iOS应用程式更新时会获得新的标识符FORVendor?

前端之家收集整理的这篇文章主要介绍了为什么iOS应用程式更新时会获得新的标识符FORVendor?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
每当我的应用程序从App Store更新时,由于某些原因,一小部分用户获得了一个新的标识符FORVendor.我的用户注册登录.它们都是匿名的,所以我需要通过他们的供应商ID分隔它们.

我认为在某些设备上可能没有足够的空间,导致应用程序被删除和重新安装,但事实并非如此,因为在上次更新中,我的一个朋友拥有超过2GB的空白空间.

我知道,对于删除并重新安装该应用程序的用户,更改了identifierForVendor.但是情况并非如此,因为应用程式刚刚更新.

问题是什么?奇怪的是,这还没有发生在开发团队设备上.或者仍然有用户在无数的应用更新,操作系统更新等之后没有遇到此错误.这只会发生在一小部分用户中.所有用户都是iOS7,它适用于不同的设备型号和iOS版本.

我使用这段代码获取他们的ID:

static let DeviceId = UIDevice.currentDevice().identifierForVendor.UUIDString

然后我将它们保存到NSUserDefaults中:

NSUserDefaults.standardUserDefaults().setBool(true,forKey: "User" + DeviceId)
NSUserDefaults.standardUserDefaults().synchronize()

然后在每次新的登录时检查用户是否存在:

static func doesUserExist() -> Bool {
    var userDefaultValue: AnyObject? = NSUserDefaults.standardUserDefaults().valueForKey("User" + DeviceId)

    if defaultValue == true {
        println("Userdefaults already has this guy,moving on")
        FirstTime = false
        return true
    } else {
        println("First time in the app!")
        FirstTime = true
        return false
    }
}

如果用户确实存在,则启动登录过程.如果用户不存在,则显示注册过程.我使用Parse.com作为后端,deviceID用作用户名.当这么少的用户遇到这个错误时,我看到一个新的用户名和一个新的帐户创建.

解决方法

在5月和7月之间更新应用程序商店中的应用程序时,会出现一个错误,影响了计算的标识符.苹果声称已经解决了这个问题,并推出另一个更新应该在关键日期之前恢复原始价值.
参考: https://openradar.appspot.com/22677034

请注意,有些用户仍然观察到这个问题甚至更新了七月后的几周.因此,仍然有可能在某些情况下仍然存在错误,或者将来可能会随时重现错误.因此,如果您将此数据用作加密的一部分,最好将其保存到钥匙串.

猜你在找的iOS相关文章