2015-06-17 10 views
10

identifierForVendor è non dovrebbe cambiare sulla reinstallazione del app:cambiamenti identifierForVendor su reinstallazione

Il valore di questa proprietà rimane la stessa, mentre l'applicazione (o di un altro applicazione dello stesso produttore) è installato su il dispositivo iOS. Il valore cambia quando l'utente elimina tutte le app del fornitore dal dispositivo e successivamente ne reinstalla uno o più. Il valore può cambiare anche durante l'installazione di build di test utilizzando Xcode o quando si installa un'app su un dispositivo utilizzando la distribuzione ad-hoc. Pertanto, se la tua app memorizza il valore di questa proprietà in qualsiasi punto, devi con garbo gestire le situazioni in cui l'identificatore cambia.

https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor

Tuttavia, ho appena testato questo con una delle nostre applicazioni in diretta su App Store. Anche con un certo numero di altre nostre app ancora installate sul dispositivo, se reinstallo l'app A l'UUID restituito da identifierForVendor cambia ogni volta.

Non era così.

Questo funzionava. Ma a un certo punto, l'UUID sembra aver iniziato a cambiare su "semplici reinstallazioni" (come detto sopra). È un bug noto? IdentifierForVendor è noto per essere rotto rispetto alla documentazione di cui sopra? Eventuali soluzioni alternative (tranne il salvataggio di UUID sul portachiavi, poiché tale metodo si interrompe con la sincronizzazione di iCloud)?

+0

Keep identifierForVendor o UUID personalizzato in KeyChain. Vedi: [Come preservare identifierForVendor in ios dopo aver disinstallato l'app ios sul dispositivo?] (Http://stackoverflow.com/questions/21878560/how-to-preserve-identifierforvendor-in-ios-after-uninstalling-ios-app- on-device% 3E) –

+0

Lasciami citare me stesso "a parte il salvataggio di UUID sul portachiavi, perché quel metodo si interrompe con la sincronizzazione di iCloud". Bene, quel metodo potrebbe funzionare in alcuni casi. Il che significa che non funzionerà in ** tutti ** i casi. – Jonny

+0

È possibile rendere le voci del portachiavi specifiche del dispositivo (avvertenza: l'ho richiamato da un video WWDC e sono andato alla ricerca di risorse - non ho avuto la necessità di testarlo esplicitamente anch'io). https://www.andyibanez.com/using-ios-keychain/ e https://developer.apple.com/library/ios/documentation/Security/Reference/keychainservices/index.html#//apple_ref/doc/constant_group/Keychain_Item_Accessibility_Constants –

risposta

8

È un bug noto. Sembra che Apple abbia fatto un aggiornamento ad AppStore che causa questo nuovo comportamento per identifierForVendor intorno al 28 maggio. Se cerchi nel forum degli sviluppatori di app, ci sono altri sviluppatori che hanno segnalato lo stesso problema.

il GC firma da parte di Apple ha risposto sulla questione con la seguente risposta:. "Si prega di segnalazioni d'errore su questo a https://developer.apple.com/bug-reporting> Siamo a conoscenza di questo problema e stiamo indagando Non c'è alcuna soluzione nota in questo momento.. "

+0

Ho trovato la/una discussione nel nuovo forum. Sembra che sia un problema noto come dici tu. – Jonny

0

Stiamo per ripresentare utilizzando un'autorizzazione del gruppo di app per darci NSUserDefaults condivisi. Suona come App Group NSUserDefaults (a differenza delle abilitazioni per l'archiviazione dei valori chiave per il portachiavi-accesso-gruppo e iCloud) sul dispositivo, ma non sull'account iCloud. Se la chiave NSUserDefault condivisa "deviceid" non esiste, salveremo l'ID IdentifierForVendor e lo useremo per tutte le nostre app una volta salvato.

Problemi correlati