identifierForVendor не должен меняться при переустановке приложения:
Значение в этом свойстве остается неизменным, пока приложение (или другое приложение от того же производителя) устанавливается на устройстве iOS. Значение изменяется, когда пользователь удаляет все приложения этих поставщиков из устройство и впоследствии переустанавливает один или несколько из них. Значение может также изменить при установке тестовых сборок с использованием Xcode или при установке приложение на устройстве с использованием специального распространения. Поэтому, если ваше приложение хранит значение этого свойства в любом месте, вы должны изящно обрабатывать ситуации, в которых изменяется идентификатор.
https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor
Тем не менее, я только что проверил это с одним из наших живых приложений в магазине приложений. Даже если на устройстве все еще установлено несколько других наших приложений, если я переустановлю приложение A, UUID, возвращаемый из identifierForVendor, будет меняться каждый раз.
Это было не так.
Это раньше работало. Но в какой-то момент UUID, похоже, начал меняться на "простые переустановки" (как указано выше). Это известная ошибка? Известно, что identifierForVendor не работает по сравнению с документацией выше? Любые обходные пути (кроме сохранения UUID в цепочке для ключей, потому что этот метод ломается с синхронизацией iCloud)?