Ответ 1
Это довольно четко документировано, что это значение изменится при создании и запуске в симуляторе. На реальном устройстве он будет изменяться только тогда, когда пользователь удалит все ваши приложения со своего устройства и переустановит приложение.
Если вы хотите, чтобы приложение симулятора использовало согласованный идентификатор во время разработки, вы могли бы определить этот UUID и использовать его только для сборки симулятора:
NSUUID *devId;
#if TARGET_IPHONE_SIMULATOR
devId = [NSUUID initWithUUIDString:@"SOME-STATIC-UUID-STRING"];
#else
devId = [UIDevice currentDevice].identifierForVendor;
#endif
Обратите внимание, что вам нужно заменить SOME-STATIC-UUID-STRING на реальную строку UUID.