web-dev-qa-db-fra.com

Identification unique du périphérique iOS pour iOS 7.0 et versions ultérieures

Vous cherchez votre aide

Je suis confronté à un problème lors de l'obtention de identificateur de périphérique. En fait, j'utilise les classes UIDevice + IdentifierAddition.h, NSString + MD5Addition.h pour obtenir Identifier, mais son identifiant est identique pour tous mes appareils, à savoir iPhone 4s (iOS 7.1) et iPhone 5 (iOS 7.1. 1).

Quelqu'un peut-il avoir une solution à ce problème? parce que je veux quelque chose d'unique pour un appareil spécifique. c'est mon exigence de l'application.

Important: Je souhaite soumettre cette application sur l'App Store. Par conséquent, la réponse doit être conforme aux instructions

15
Karamjeet Singh

Depuis iOS 7, il n'est plus possible d'obtenir des identifiants de périphérique uniques.

Vos options sont:

26
rckoenes

C'est maintenant possible dans iOS 11.0+, Apple a introduit une nouvelle API appelée DeviceCheck API avec laquelle les développeurs peuvent identifier de manière unique un périphérique.

Comme mentionné dans la documentation :

Utilisation des API DeviceCheck, en combinaison avec des API serveur à serveur, vous pouvez définir et interroger deux bits de données par périphérique, tout en conservant confidentialité des utilisateurs. Vous pouvez utiliser ces données pour identifier les périphériques dotés de déjà profité d'une offre promotionnelle que vous fournissez, ou à signaler un appareil que vous avez déterminé frauduleux. Le Les API DeviceCheck vous permettent également de vérifier que le jeton que vous recevez provient bien depuis un appareil Apple authentique incluant votre application.

Découvrez également la vidéo WWDC17 suivante, qui commence à 24 minutes: https://developer.Apple.com/videos/play/wwdc2017/702/


MODIFIER:

Vous trouverez un tutoriel très détaillé sur ce sujet Device Checkici .

12
Muhammad Umair

En objectif c

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

En rapide

 var uniqueId=UIDevice.currentDevice().identifierForVendor.UUIDString as String
 println("Your device identifires =>\(uniqueId)")
8
Avijit Nagare

Malheureusement identificateurForVendor change lorsque vous désinstallez votre application afin de garantir qu’elle ne changera pas, sauvegardez-la dans le trousseau 

J'ai utilisé le pod 'SSKeychain' Homepage: https://github.com/soffes/sskeychain

Voici le code

 + (NSString *)getDeviceId {
           NSString *appName=[[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleNameKey];
           NSString *strApplicationUUID = [SSKeychain passwordForService:appName account:@"MY_KEY"];
           if (strApplicationUUID == nil) {
               strApplicationUUID  = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
               [SSKeychain setPassword:strApplicationUUID forService:appName account:@"MY_KEY"];
            }
    return strApplicationUUID;
}
5
nahlamortada

[UIDevice uniqueIdentifier]; est obsolète dans iOS 5 et supérieur.

Vous pouvez obtenir l'identifiant du vendeur en utilisant ceci NSString * udid = [[UIDevice currentDevice] uniqueIdentifier];

et stocker cela dans le trousseau et utiliser plus tard.

Aussi, vous pouvez vérifier pour 1) NSUUID 2) CFUUID

vous obtiendrez une description détaillée ici Identification unique de l'appareil dans ios

0
Nik

Si vous essayez d’identifier un périphérique une seule fois, c’est-à-dire pour estimer le nombre d’utilisateurs uniques, alors je vous suggère d’utiliser "advertisingIdentifier" de ASIdentifierManager.

Apple Doc

0
Mahesh