web-dev-qa-db-fra.com

Comment obtenir Device UDID dans un programme dans iOS7?

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.

26
iSara

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
}
34
codercat

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;
    }
}
19
Tapas Pal

Dans Swift, vous pouvez obtenir l'UUID de l'appareil comme ceci

let uuid = UIDevice.currentDevice().identifierForVendor.UUIDString
println(uuid)
6
jcpennypincher

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.

2
Warrior

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.

1
Toseef Khilji

Pour obtenirUUIDin Swift 3.0 :

let UUIDValue = UIDevice.current.identifierForVendor!.uuidString
0
Brahmaiah Thota

Swift 2.2+ moyen d'obtenir l'UUID:

if let UUID = UIDevice.currentDevice().identifierForVendor {
  print("UUID: \(UUID.UUIDString)")
}
0
muhasturk

Avoir 2 solutions:

  • Vous pouvez utiliser identifierForVendor après que les stocker dans le trousseau et les utiliser plus tard. Parce que la valeur du trousseau ne sera pas modifiée lors de la réinstallation de l'application.
  • Vous pouvez essayer OpenUDID
0
Trinh Tran

Dans Swift 3.0:

UIDevice.current.identifierForVendor!.uuidString

ancienne version

UIDevice.currentDevice().identifierForVendor

vous voulez une chaîne:

UIDevice.currentDevice().identifierForVendor!.UUIDString
0
Rob-4608

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];
0
Mannam Brahmam