iOS : Utiliser les variables d’environnement

iOS génère automatiquement certaines variables d'environnement que l'on peut trouver dans le NSDictionary fourni par :

 NSDictionary * dic = [[NSProcessInfo processInfo] environment];

Le contenu de ce dictionnaire varie fortement en fonction du contexte d'exécution de l'application, ce qui nous permet de détecter par exemple si l'on est connecté avec Xcode au device : (parfait pour les tests)

if(![[[NSProcessInfo processInfo] environment] objectForKey:@"NSUnbufferedIO"]){
NSLog(@"On n'est pas connecté à XCode");}
else{
NSLog(@"On est connecté à XCode");}

Ce dictionnaire nous permet de savoir si nous sommes en test :

if([[[[[NSProcessInfo processInfo] environment] objectForKey:@"XCInjectBundle"] pathExtension] isEqualToString:@"xctest"]){
NSLog(@"On est en test");}
else{
NSLog(@"On n'est pas en test");}

Enfin, il permet de savoir si l'on est en exécution sur un simulateur (Sans utiliser de Macro) :

if([[[[NSProcessInfo processInfo] environment] objectForKey:@"IPHONE_SIMULATOR_DEVICE"] isEqualToString:@"iPhone"] || [[[[NSProcessInfo processInfo] environment] objectForKey:@"IPHONE_SIMULATOR_DEVICE"] isEqualToString:@"iPad"]){
NSLog(@"On est sur le simulateur");}
else{
NSLog(@"On n'est pas sur le simulateur");}

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.