Estoy creando una aplicación que procesa datos confidenciales de tarjetas de crédito.
Si mi código se está ejecutando en modo de depuración, quiero registrar estos datos en la consola y hacer algunos volcados de archivos.
Sin embargo, en la versión final de la tienda de aplicaciones (es decir, cuando se ejecuta en modo de lanzamiento) es esencial que todo esto esté deshabilitado (peligro de seguridad).
Intentaré responder a mi pregunta lo mejor que pueda; entonces la pregunta se convierte en '¿Es esta ruta de solución la mejor o la mejor manera de hacerlo?'
// add `IS_DEBUG=1` to your debug build preprocessor settings
#if( IS_DEBUG )
#define MYLog(args...) NSLog(args)
#else
#define MYLog(args...)
#endif
#ifdef DEBUG NSLog@("Something");#else//#endif
esto no funciona. ¿Cómo puedo inicializar un botón o registrar algo en la consola, por favor, puedes editar tu pregunta?Para una solución en Swift, consulte este hilo en SO.
Básicamente, la solución en Swift se vería así:
Además, deberá establecer el
DEBUG
símbolo en laSwift Compiler - Custom Flags
sección para laOther Swift Flags
clave a través de una-D DEBUG
entrada. Vea la siguiente captura de pantalla para ver un ejemplo:fuente
Other Swift Flags
clave no aparecerá a menos que seleccioneAll
ycombined
superiorApple ya incluye una
DEBUG
bandera en las compilaciones de depuración, por lo que no necesita definir la suya.Es posible que también desee considerar la redefinición
NSLog
de una operación nula cuando no esté enDEBUG
modo, de esa manera su código será más portátil y simplemente puede usarNSLog
declaraciones regulares :fuente
La mayoría de las respuestas dijeron que cómo configurar #ifdef DEBUG y ninguno de ellos decía cómo determinar la compilación de depuración / liberación.
Mi opinión:
Editar esquema -> ejecutar -> configuración de compilación: elija depurar / liberar. Puede controlar el simulador y el estado del código de su iPhone de prueba.
Editar esquema -> archivo -> configuración de compilación: elija depurar / liberar. Puede controlar la aplicación del paquete de prueba y el estado del código de la aplicación App Store.
fuente
Archive
modoDebug
y envié la aplicación a la tienda de aplicaciones. Al verificar el resultado después de la descarga de la aplicación de iTunes, simplemente no funciona. Así que asegúrese de queDEBUG/RELEASE
solo funcione cuando se selecciona el modo respectivo enBuild/Run/Archive
.Swift y Xcode 10+
#if DEBUG
pasará CUALQUIER desarrollo, compilación ad-hoc, dispositivo o simulador. Solo es falso para las compilaciones de App Store y TestFlight.Ejemplo:
fuente
La respuesta de zitao xiong está bastante cerca de lo que uso; También incluyo el nombre del archivo (quitando la ruta de ARCHIVO ).
fuente
En xcode 7, hay un campo en Apple LLVM 7.0: preprocesamiento , que se llama " Macros de preprocesadores no utilizados en precompilados ... "? Puse DEBUG delante de Debug y funciona para mí usando el siguiente código:
fuente
Solo una idea más para detectar:
DebugMode.h
DebugMode.m
agregar al archivo de puente de encabezado:
#include "DebugMode.h"
uso:
DebugMode.isDebug()
No es necesario escribir algo dentro de las banderas rápidas de las propiedades del proyecto.
fuente
No estoy seguro si respondí tu pregunta, tal vez podrías probar este código:
fuente