Je me demandais s'il était possible de connaître l'UDID de l'iPhone de l'utilisateur. Quelqu'un peut-il faire la lumière?
Réponses
Trop de publicités?Au lieu de cela, vous devez utiliser les nouvelles méthodes identifierForVendor
et advertisingIdentifier
dans iOS 6+ pour accéder à ce. Voir related post ici pour plus de détails.
Ancienne (obsolète et entraînera dans l'App Store ou le rejet)
NSString *udid = [[UIDevice currentDevice] uniqueIdentifier];
Comme d'iOS7, l' uniqueIdentifier
de la propriété n'est plus disponible.
Voir l' UIDevice
de référence.
Comme certains ont dit, dans iOS5 elle est obsolète:
NSString *udid = [[UIDevice currentDevice] uniqueIdentifier]
Apple a maintenant 3 Api pour obtenir un UUID de l'appareil:
La variante 1 (NSUUID classe):
NSString *udid = [[NSUUID UUID] UUIDString]
La variante 2 (UIDevice classe):
NSString *udid = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
La variante 3 (ASIdentifierManager classe, elle ne requiert qu'AdSupport cadre):
NSUUID *UUID = [[ASIdentifierManager sharedManager] advertisingIdentifier];
NSString *udid = [UUID UUIDString];
Mais ils sont tous alphanumérique, et une ferme typique dispositif identificateur unique est uniquement des chiffres. Donc, thos 3 Api sont inutiles, et l'ancien [[UIDevice currentDevice] uniqueIdentifier] travaille toujours dans iOS6, mais pour combien de temps?
Si le "obsolète" avertissement qui vous dérange, il suffit d'ajouter:
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
Espérons que cela aide!
Il pourrait être utile de mentionner que la identifierForVendor n'est pas unique pour un périphérique, il peut et va changer éventuellement.
Apple dit ceci à propos de identifierForVendor:
La valeur de cette propriété est la même pour les applications qui viennent de la même fournisseur en cours d'exécution sur le même appareil. Une autre valeur est retournée pour les applications sur le même appareil qui viennent de différents fournisseurs, et pour applications sur différents appareils, quel que soit le fournisseur.
Si la valeur est nulle, d'attente et d'obtenir de nouveau la valeur plus tard. Ce qui se passe, par exemple, après que le dispositif a été redémarré mais avant que l'utilisateur a déverrouillé le périphérique.
La valeur de cette propriété reste la même, tandis que l'application (ou un autre app de la même vendeur) est installé sur l'appareil iOS. La valeur les changements lorsque l'utilisateur supprime tous que fournisseur d'applications de l' appareil et ensuite réinstalle un ou plusieurs d'entre eux. La valeur peut aussi changer lors de l'installation de versions de test en utilisant Xcode, ou lors de l'installation d'une application sur un périphérique en utilisant ad-hoc de la distribution. Par conséquent, si votre app stores la valeur de cette propriété n'importe où, vous devez gérer harmonieusement les situations où l'identificateur de changements.
Mais ce qui est encore pire, c'est qu'il semble que Apple est aussi la suppression de la dernière station de l'aide de l'adresse MAC Unique identifyer, selon ce AVG Blog.
Alors, que faire maintenant, si nous voulons identifier les appareils - eg. pour les licences, les paramètres ou à d'autres fins??