Est-il possible lors de l'exécution de détecter si l'application en cours d'exécution a été compilée avec le débogage ou la distribution.Détecter si l'iPhone exécute une version Debug/Distribution à l'exécution
Répondre
Dans Infos du projet, pour une configuration de débogage, ajoutez une macro de préprocesseur de "DEBUG" (dans la section GCC 4.2 - Pré-traitement).
Dans votre code, vous pouvez utiliser #ifdef pour voir si DEBUG est défini si vous voulez que du code soit inclus ou non pour les versions de débogage. Ou vous pouvez même définir une variable (je ne peux pas imaginer pourquoi vous voulez cela):
#ifdef DEBUG
BOOL isBuiltDebug = YES;
#else
BOOL isBuiltDebug = NO;
#endif
EDIT: Eh bien, une autre façon est de définir une valeur booléenne dans une macro préprocesseur, à savoir: « DEBUG_BUILD = 1 "pour la configuration du débogage et" DEBUG_BUILD = 0 "pour la configuration de la version. Ensuite, vous pouvez utiliser cette valeur dans votre code:
if (DEBUG_BUILD) {
....
}
Faites juste attention de ne pas utiliser un nom de macro qui pourrait correspondre à un nom qui est déjà dans votre code ou dans un fichier .h que vous pouvez inclure soit, parce que le préprocesseur va le remplacer et c'est vraiment pénible de trouver ce genre de bugs.
Le code va faire partie d'une tierce partie dist et, si possible, aimerait éviter #ifdef, mais peut vivre avec s'il n'y a pas d'autre solution. – lolsborn
Je ne connais pas d'autre moyen que d'utiliser une macro de préprocesseur, mais vous pouvez éviter le #ifdef, voir ma modification ci-dessus. – progrmr
Merci pour la réponse! –
Sans avoir à penser à la définition d'une macro préprocesseur personnalisé, vous pouvez simplement écrire une méthode personnalisée comme celui-ci:
+ (BOOL) isInDebugMode
{
#ifndef __OPTIMIZE__ // Debug Mode
return YES;
#else
return NO;
#endif
}
Ou il suffit d'écrire votre code en ligne dans ces déclarations:
#ifndef __OPTIMIZE__ // Debug Mode
// Your debug mode code
#else
// Your release mode code
#endif
Le paramètre __OPTIMIZE__
du préprocesseur est automatiquement défini par le compilateur en fonction des paramètres de votre projet, vous n'avez donc pas à vous en soucier.
- 1. Comment détecter si une machine Windows exécute IPV4 ou IPV6?
- 2. Comment détecter si un utilisateur exécute IE 6?
- 3. Comment détecter si un ordinateur distant exécute RDP?
- 4. Est-il possible de vérifier si une application ClickOnce exécute la dernière version?
- 5. C++ Détecter OS Version
- 6. Détecter la version PowerPoint
- 7. Comment puis-je détecter si mon processus exécute UAC-élevé ou non?
- 8. JQuery détecter si une étiquette est à fermeture automatique
- 9. Détecter si une langue de droite à gauche est installée
- 10. Détecter si périphérique tactile
- 11. détecter si le type est une fonction
- 12. Détecter si l'application Access a une erreur
- 13. Comment détecter si une table existe? MySql
- 14. iPhone - Comment puis-je détecter la version iPhone?
- 15. Détecter si UIKeyBoard affiche
- 16. Accéder à l'URL exécute JavaScript
- 17. Comment php exécute une fonction affectée à une variable?
- 18. détecter microsoft office version en utilisant javascript
- 19. Comment détecter dans Safari si une application est installée
- 20. Détecter via javascript si Silverlight est installé
- 21. Comment détecter si une adresse va provoquer une violation d'accès?
- 22. Comment détecter la version iPhone OS à l'aide de macros
- 23. Détecter si Tooltip est affiché?
- 24. Détecter si Javascript est activé?
- 25. Comment détecter la version linguistique de Visualstudio?
- 26. Détecter la version de Windows avec JavaScript
- 27. Comment détecter si une page HTML contient une vidéo?
- 28. Comment déterminer si un ordinateur exécute XP Service Pack 3
- 29. Vérifier avec le code si FinalBuilder exécute un script
- 30. Comment détecter la version linguistique de Windows
Pourquoi voudriez-vous faire cela? – progrmr