Comment obtenir le code UDID du périphérique dans Program7 sous iOS7 .[[UIDevice currentDevice] uniqueIdentifier]
J'ai utilisé ce code. IOS7 est obsolète. comment obtenir le UDID du périphérique. La chaîne UDID changeant lorsque je supprime l'application et que la réinstallation signifie que l'UDID devenait différent.
C'est du travail 100% à toute la version
autre meilleure option recommandée par Apple/ Référence de classe ASIdentifierManager
ios7-app-backward-compatible-avec-ios5 en ce qui concerne l'identificateur unique
ce lien vous indique comment gérer et utiliser un framework personnalisé
uidevice-uniqueidentifier-property-is-obsolete-what-now
iOS 9
NSUUID *uuid = [[NSUUID alloc]initWithUUIDString:@"20B0DDE7-6087-4607-842A-E97C72E4D522"];
NSLog(@"%@",uuid);
NSLog(@"%@",[uuid UUIDString]);
ou
il ne supporte que iOS 6.0 et supérieur
code à utiliser [[[UIDevice currentDevice] identifierForVendor] UUIDString];
NSUUID *deviceId;
#if TARGET_IPHONE_SIMULATOR
deviceId = [NSUUID initWithUUIDString:@"UUID-STRING-VALUE"];
#else
deviceId = [UIDevice currentDevice].identifierForVendor;
#endif
iOS 5 à utiliser comme
if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
// This is will run if it is iOS6
return [[[UIDevice currentDevice] identifierForVendor] UUIDString];
} else {
// This is will run before iOS6 and you can use openUDID or other
// method to generate an identifier
}
UDID n'est plus disponible sous iOS 6+ pour des raisons de sécurité/confidentialité. A la place, utilisez identifiantForVendor ou advertisingIdentifier.
Veuillez passer par this link.
NSString* uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString]; // IOS 6+
NSLog(@"UDID:: %@", uniqueIdentifier);
UPDATE pour iOS 8+
+ (NSString *)deviceUUID
{
if([[NSUserDefaults standardUserDefaults] objectForKey:[[NSBundle mainBundle] bundleIdentifier]])
return [[NSUserDefaults standardUserDefaults] objectForKey:[[NSBundle mainBundle] bundleIdentifier]];
@autoreleasepool {
CFUUIDRef uuidReference = CFUUIDCreate(nil);
CFStringRef stringReference = CFUUIDCreateString(nil, uuidReference);
NSString *uuidString = (__bridge NSString *)(stringReference);
[[NSUserDefaults standardUserDefaults] setObject:uuidString forKey:[[NSBundle mainBundle] bundleIdentifier]];
[[NSUserDefaults standardUserDefaults] synchronize];
CFRelease(uuidReference);
CFRelease(stringReference);
return uuidString;
}
}
Dans Swift, vous pouvez obtenir l'UUID de l'appareil comme ceci
let uuid = UIDevice.currentDevice().identifierForVendor.UUIDString
println(uuid)
Utilisez identifierForVendor ou advertisingIdentifier.
identifiantForVendor:
An alphanumeric string that uniquely identifies a device to the app’s vendor. (read-only)
The value of this property is the same for apps that come from the same vendor running on the same device. A different value is returned for apps on the same device that come from different vendors, and for apps on different devices regardless of vendor.
advertisingIdentifier:
An alphanumeric string unique to each device, used only for serving advertisements. (read-only)
Unlike the identifierForVendor property of UIDevice, the same value is returned to all vendors. This identifier may change—for example, if the user erases the device—so you should not cache it.
Consultez également la documentation d’Apple pour identifierForVendor et advertisingIdentifier.
Dans iOS 7, Apple renvoie désormais toujours une valeur fixe lors de l'interrogation du MAC pour contrecarrer spécifiquement le MAC en tant que base d'un schéma ID. Donc, vous devez vraiment utiliser - [UIDevice identifierForVendor] ou créer un UUID par installation.
Vérifiez ceci SO Question.
Pour obtenirUUIDin Swift 3.0 :
let UUIDValue = UIDevice.current.identifierForVendor!.uuidString
Swift 2.2+ moyen d'obtenir l'UUID:
if let UUID = UIDevice.currentDevice().identifierForVendor {
print("UUID: \(UUID.UUIDString)")
}
Avoir 2 solutions:
Dans Swift 3.0:
UIDevice.current.identifierForVendor!.uuidString
ancienne version
UIDevice.currentDevice().identifierForVendor
vous voulez une chaîne:
UIDevice.currentDevice().identifierForVendor!.UUIDString
Pour obtenir UDID: (Si vous utilisez ceci, les gars de l'App Store ne le permettront pas -> selon mes préoccupations)
- (NSString *)udid
{
void *gestalt = dlopen("/usr/lib/libMobileGestalt.dylib", RTLD_GLOBAL | RTLD_LAZY);
CFStringRef (*MGCopyAnswer)(CFStringRef) = (CFStringRef (*)(CFStringRef))(dlsym(gestalt, "MGCopyAnswer"));
return CFBridgingRelease(MGCopyAnswer(CFSTR("UniqueDeviceID")));
}
**Entitlements:**
<key>com.Apple.private.MobileGestalt.AllowedProtectedKeys</key>
<array>
<string>UniqueDeviceID</string>
</array>
Pour obtenir l'UUID :
self.uuidTxtFldRef.text = [[[UIDevice currentDevice] identifierForVendor] UUIDString];