Etienne Segonzac

Le mobile à travers les yeux d'un développeur.

Petit Guide De l'UDID

Comme vous avez pu le lire dans la presse à scandale avec la sortie d’iOS 5, Apple change de politique concernant des UDIDs.

Tout d’abord qu’est-ce qu’un UDID?

C’est l’identifiant unique de votre iPhone, ça ressemble à ça: 91F24C5E-F158-4177-9359-CB9F09EFE80F.

Et il peut être utilisé de différentes façons par vos applications:

  • A des fins statistiques
  • Pour vous identifier à un service (et non pas vous authentifier…)
  • Et plus généralement dès qu’il faut faire persister un bout d’information rien que pour vous (et votre iPhone)

Les changements, en résumé

Avant

Les applications ont accès à ce fameux UDID comme bon leur semble.

Statistiquement, c’est votre iPhone physique qui est compté.

Après

Apple va progressivement retirer l’accès à l’UDID et encourage les développeurs à générer eux même leurs identifiants uniques.

Maintenant c’est chaque installation d’une application qui est comptée.

  • Si vous changez d’iPhone mais que vous restaurez vos application, côté statistique on ne se rendra pas compte du changement
  • Si vous dé-installez/ré-installez l’application statistiquement cela sera vu comme un nouvel utilisateur

Pour les développeurs…

Génération et stockage d’un identifiant unique
1
2
3
4
5
6
7
8
9
10
11
12
13
14
- (NSString *)deviceUDID
{
  // N'oubliez pas de déclarer une constante pour "generatedUDID"
  // là c'était pour rendre le code plus lisible
  NSString *udid = [[NSUserDefaults standardUserDefaults] objectForKey:@"generatedUDID"];
  if (udid == nil) {
      CFUUIDRef udidref = CFUUIDCreate(NULL);
      udid = [(NSString *)CFUUIDCreateString(NULL, udidref) autorelease];
      CFRelease(udidref);
      
      [[NSUserDefaults standardUserDefaults] setObject:udid forKey:@"generatedUDID"];
  }
  return udid;
}