Ogni volta che la mia app viene aggiornata dall'App Store, un numero esiguo di utenti ottiene un nuovo identificatore per il motivo. I miei utenti non si registrano o non effettuano l'accesso. Sono tutti anonimi, quindi ho bisogno di separarli tramite i loro ID del fornitore.Perché iOS ottiene un nuovo identificatore per gli aggiornamenti delle app?
Ho pensato che lo spazio su alcuni dispositivi potrebbe essere insufficiente, con conseguente eliminazione e reinstallazione dell'app, ma non è il caso dato che nell'ultimo aggiornamento un mio amico aveva oltre 2 GB di spazio vuoto.
So che l'identificatore ForVendor viene modificato per un utente che elimina e reinstalla l'app. Ma non è questo il caso, visto che l'app è appena stata aggiornata.
Quale potrebbe essere il problema? La parte strana è che questo non è ancora avvenuto per i dispositivi del team di sviluppo. Oppure ci sono ancora utenti che non hanno riscontrato questo errore dopo innumerevoli aggiornamenti delle app, aggiornamenti del sistema operativo, ecc. Questo succede solo a una piccola percentuale di utenti. Tutti gli utenti sono iOS7 + e succede per diversi modelli di dispositivi e versioni iOS.
Io uso questo codice per ottenere il loro ID:
static let DeviceId = UIDevice.currentDevice().identifierForVendor.UUIDString
Poi li salva in NSUserDefaults:
NSUserDefaults.standardUserDefaults().setBool(true, forKey: "User" + DeviceId)
NSUserDefaults.standardUserDefaults().synchronize()
Poi controllo se esiste l'utente, ad ogni nuova login:
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
}
}
Se l'utente esiste, avvia la procedura di accesso. Se l'utente non esiste mostra loro la procedura di registrazione. Sto usando Parse.com come backend e il deviceID è usato come username. Quando questa piccola quantità di utenti sperimenta questo bug, vedo un nuovo nome utente e un nuovo account creato.
https://discussions.apple.com/thread/5114517?tstart=0 trovato anche questo – Esqarrouth
mai scoperto il perché cambia? Ho anche lo stesso problema in cui le persone si aggiornano e hanno un ID fornitore diverso –
Ma ma queste sembrano alcune delle possibilità che sto testando: aggiornamenti del sistema operativo, spazio di archiviazione cache app, aggiornamenti app, utente che cambia paese, firma su icloud o nuovo servizio Apple – Esqarrouth