Es posible en el tiempo de ejecución para detectar si la aplicación que se está ejecutando se compiló con depuración o distribución.Detecta si el iPhone está ejecutando una compilación Debug/Distribution en tiempo de ejecución
Respuesta
En la información del proyecto, para una configuración de depuración, agregue una macro de preprocesador de "DEPURACIÓN" (en la sección 4.2 del preprocesamiento de GCC).
En su código, puede usar #ifdef para ver si se define DEBUG si desea que se incluya algún código o no para las compilaciones de depuración. O incluso se puede establecer una variable (no puedo imaginar por qué desea esto):
#ifdef DEBUG
BOOL isBuiltDebug = YES;
#else
BOOL isBuiltDebug = NO;
#endif
EDIT: Bueno, es otra manera de definir un valor booleano en un preprocesador de las macros, es decir: "DEBUG_BUILD = 1 "para la configuración de depuración, y" DEBUG_BUILD = 0 "para la configuración de la versión. A continuación, puede utilizar ese valor en el código:
if (DEBUG_BUILD) {
....
}
Sólo tenga cuidado de no utilizar un nombre de macro que podría coincidir con un nombre que ya está en su código o en cualquier archivo .h que podría incluir ya sea porque el preprocesador lo reemplazará y es un verdadero dolor encontrar ese tipo de errores.
El código va a formar parte de un dist de terceros y, si es posible, le encantaría evitar #ifdef, pero puede vivir con él si no hay otra solución. – lolsborn
No conozco otra manera que no sea utilizar una macro de preprocesador, pero puede evitar el #ifdef, vea mi edición anterior. – progrmr
¡Gracias por la respuesta! –
Sin tener que pensar en la definición de una macro preprocesador personalizado, puede simplemente escribir un método personalizado como éste:
+ (BOOL) isInDebugMode
{
#ifndef __OPTIMIZE__ // Debug Mode
return YES;
#else
return NO;
#endif
}
O simplemente escribir su código en línea dentro de esas declaraciones:
#ifndef __OPTIMIZE__ // Debug Mode
// Your debug mode code
#else
// Your release mode code
#endif
La configuración del preprocesador __OPTIMIZE__
establecida automáticamente por el compilador con respecto a la configuración de su proyecto, para que no tenga que preocuparse por ello.
- 1. Prueba de tiempo de ejecución de MonoTouch para ver si se está ejecutando en el simulador
- 2. iPhone - ¿Cómo puedo detectar que un dispositivo está ejecutando una compilación ad hoc de mi aplicación en tiempo de ejecución?
- 3. Ejecutando PublicResXFileCodeGenerator en tiempo de compilación
- 4. Detectar si qt ejecuta una compilación de depuración en el tiempo de ejecución
- 5. Detecta aceleración de hardware en tiempo de ejecución: Android
- 6. Crear plantillas T4 en tiempo de ejecución (tiempo de compilación)?
- 7. ¿Detecta si UIDatePicker está en funcionamiento?
- 8. Detecta si TextView en ListView está ellipsized
- 9. .NET compact framework - ¿detecta si está bajo el emulador?
- 10. Detecta si se está ejecutando con privilegios de administrador en Windows XP
- 11. operador sizeof en tiempo de compilación o tiempo de ejecución
- 12. TFS 2010 API, determine en qué servidor de compilación se está ejecutando una compilación.
- 13. Cómo detectar si el iphone está sincronizado cuando la aplicación no se está ejecutando
- 14. Comprobar si el proceso se está ejecutando
- 15. Xcode/iOS: ¿Cómo determinar si el código se está ejecutando en la compilación DEBUG/RELEASE?
- 16. Common Lisp Tiempo de compilación y ejecución
- 17. Detecta si un VideoVIew está almacenando en el buffer
- 18. Verifica programáticamente si se está ejecutando syncdb
- 19. Detecta si HTC "arranque rápido" está habilitado
- 20. Grails BuildConfig.groovy, ¿diferencia entre compilación, compilación y tiempo de ejecución?
- 21. ¿Un trabajo de SQL Server saltará una ejecución programada si ya se está ejecutando?
- 22. C# /. NET: Detecta si el programa se está ejecutando como un servicio o una aplicación de consola
- 23. ¿Detecta si Mod_Security está instalado con PHP?
- 24. iPhone/iOS: ¿Cómo puedo saber qué localización está usando el teléfono en tiempo de ejecución?
- 25. La mejor manera de verificar si una aplicación de iPhone se está ejecutando por primera vez
- 26. ¿Cómo comprobar si estoy en tiempo de ejecución o diseño?
- 27. Cómo rastrear si se está ejecutando una tarea async/awaitable
- 28. compilador de clases java y compilación en tiempo de ejecución
- 29. Determinar si el programa se está ejecutando en Windows Server
- 30. ¿El genérico es el tiempo de ejecución o el tiempo de compilación del polimorfismo?
¿Por qué querrías hacer esto? – progrmr