每当我的应用程序从App Store更新时,由于某些原因,一小部分用户获得了一个新的标识符FORVendor.我的用户不注册或登录.它们都是匿名的,所以我需要通过他们的供应商ID分隔它们.
我认为在某些设备上可能没有足够的空间,导致应用程序被删除和重新安装,但事实并非如此,因为在上次更新中,我的一个朋友拥有超过2GB的空白空间.
我知道,对于删除并重新安装该应用程序的用户,更改了identifierForVendor.但是情况并非如此,因为应用程式刚刚更新.
问题是什么?奇怪的是,这还没有发生在开发团队设备上.或者仍然有用户在无数的应用更新,操作系统更新等之后没有遇到此错误.这只会发生在一小部分用户中.所有用户都是iOS7,它适用于不同的设备型号和iOS版本.
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用作用户名.当这么少的用户遇到这个错误时,我看到一个新的用户名和一个新的帐户创建.