Question Comment détecter l'application s'exécute sur simulateur ou périphérique [dupliquer]


Duplication possible:
Détecter par programme si l'application est exécutée sur un périphérique ou un simulateur 

Comment puis-je détecter si mon application s'exécute sur Simulator ou sur Device via le code?


18
2018-03-15 10:39


origine


Réponses:


Garder en tete UIDevice vous fournit déjà des informations sur l'appareil lui-même.

[[UIDevice currentDevice] model]

Vous pouvez également utiliser les éléments suivants:

TARGET_IPHONE_SIMULATOR vous dit si vous êtes dans le simulateur iPhone.

TARGET_OS_IPHONE vous dit que vous travaillez sur l'iPhone au lieu de MacOS.

#if TARGET_IPHONE_SIMULATOR

    NSLog(@"Running in Simulator - no app store or giro");

#else

    NSLog(@"Running on the Device");

#endif

et quand seulement intéressé par l'appareil

#if !(TARGET_IPHONE_SIMULATOR)

    NSLog(@"Running on device");

#endif

68
2018-03-15 10:41



Vous pouvez utiliser cette constante

#if TARGET_OS_SIMULATOR
    NSLog(@"This is simulator mode....");
#else
    NSLog(@"This is device mode....");
#endif

8
2018-03-15 10:43



La même application compilée ne peux pas exécutez à la fois le simulateur et un appareil iOS, car les ensembles d'instructions du processeur sont complètement différents (x86 vs ARM). (... sauf si vous construisez une sorte de binaire super-universel très étrange utilisant lipo)

Il existe plusieurs façons de déterminer si l'application a été compilée pour x86 ou non. La première consiste à ajouter du code d’exécution en fonction de l’une des nombreuses macros de préprocesseur de compilation prédéfinies. Vous pouvez obtenir une liste des macros de préprocesseur pour une compilation x86 en tapant ceci sur la ligne de commande du terminal:

gcc -arch i386 -dM -E - </ dev / null | Trier


1
2018-03-16 00:05