Променя ли се UUID за някои случаи

Използвам устройството на потребителя UUID, за да получа уникално устройство.

NSString  *currentUUIDString = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

Знам, че UUID се променя, ако приложението бъде изтрито/преинсталирано (Документ на Apple).

Но променя ли се UUID за следните случаи?

  1. Ако приложението е актуализирано. (Намерен същият въпрос)
  2. Ако устройството OS version е надстроено.
  3. Ако направите iCloud/iTunes архивиране и възстановяване.
  4. Ако устройството е било нулирано. (В този случай мисля, че UUID Keychain хранилището няма да работи. Предполагам, че хранилището на ключодържателя също се изчиства.)

Редактиране:

Не, това не е дубликат, а въпрос е свързан с това как да идентифицирам уникално устройството и вече го проследих. Знам, че можем да използваме UUID за еднозначно идентифициране на устройството. Но моето безпокойство е какви са честотите, които UUID може да се промени и ако се промени, какви са сценариите, при които може да се промени.


person Kirti Nikam    schedule 29.06.2015    source източник
comment
1,2,4 не се променя, но номер 3 се променя. Вижте отговора ми [тук][1]. [1]: stackoverflow.com/a/30936929/4145420   -  person mgyky    schedule 29.06.2015
comment
comment
@gyer Благодаря за коментара. Не е дубликат, този въпрос е свързан с това как да идентифицирате уникално устройството. Но този въпрос е свързан с честотата на промяна на UUID и сценариите, в които може да бъде променен.   -  person Kirti Nikam    schedule 29.06.2015
comment
Защо не го тествате и видите какво ще се случи? Актуализирането на приложението или извършването на възстановяване от iTunes е същото като преинсталиране. Ако устройството се нулира, имате предвид фабрично нулиране, тогава да. Ако имате предвид изключване и включване на устройството, тогава не. Но най-добрият начин в този сценарий е просто да се тествате.   -  person Tim    schedule 29.06.2015
comment
@Jeff Благодаря за коментара. Каквото е възможно от моя страна, вече съм го направил. Но горните случаи като архивиране/възстановяване на iTunes/iCloud, надграждане на ОС или нулиране на фабричните настройки не е възможно да се направи от моя страна. Ако някой вече го е правил, ще бъде лесно да продължи.   -  person Kirti Nikam    schedule 29.06.2015
comment
Възстановяването на фабричните настройки гарантира, че ще промени идентификационния номер на доставчика, тъй като след това приложението трябва да се преинсталира.   -  person Tim    schedule 29.06.2015
comment
stackoverflow каза твърде много „дубликат“ .. Също така получавам тези предупреждения често, дори ако въпросите не са дублирани.. stackoverflow трябва да поправи това ..   -  person Kang Byul    schedule 13.01.2017


Отговори (2)


Да

Идентификаторът на устройството ForVendor е отличен начин за идентифициране на устройството. Ще се промени, ако приложението (и всички приложения от един и същи разработчик) бъде премахнато от устройството и преинсталирано. Не зависи от wifi/Bluetooth връзки. С изключение на грешка миналата година, тя не се променя с операционните системи. ...... Можете също да напишете свой собствен UUID в ключодържателя - който оцелява при изтриване/преинсталиране на приложението... Можете също така да напишете нещо във файла с ключ-стойност на iCloud на потребителя. Това би било по-скоро специфично за потребителя, отколкото за устройството. Освен това оцелява при изтриване/преинсталиране. Мисля, че това е, което искате.

person Jogendar Choudhary    schedule 16.04.2018

То не се променя, докато и освен ако не изтриете и инсталирате приложението отново.

person Daniis1infiniteloop    schedule 05.10.2020