Tengo una aplicación denominada MyApp que está vinculado a una biblioteca estática MyLibrary He añadido el proyecto MyLibrary a Xcode, y añadió la MyLibrary segmentar a MyApp 'dependencias de destino. Todo esto funciona bien, puedo establecer puntos de interrupción, y estoy bastante feliz.Xcode 4: definir una macro preprocesador en un objetivo depende
La cosa es que quiero un registro condicional en la biblioteca:
#ifdef DEBUG
# define MYDebug(msg, ...) NSLog(@"\nDEBUG -> %@ \n(%s:%d)",[NSString stringWithFormat:msg, ## __VA_ARGS__], __PRETTY_FUNCTION__,__LINE__);
#else
# define MYDebug(msg, ...)
#endif
Así que tengo configuración de dos acumulación de mi biblioteca: - depuración tiene "debug = 1" en configuración de generación del objetivo en "macros del preprocesador" - Prod tiene nada
Y el objetivoMyLibrary se establece en la construcción con la configuración de depuración de construcción.
Esto funciona bien si construyo la biblioteca estática (.a) y la incluyo en un proyecto. Pero si está construido por dependencia de destino, parece que DEBUG no está definido (MYDebug no registra nada).
También intenté establecer DEBUG = 1 en MyApp, pero no funciona.
¿Hay algo que eché de menos u otra forma de hacerlo?
Sí, de alguna manera has pasado por alto algo: lo que estás tratando de hacer es bastante básico y fundamental. ¿Qué versión de XCode estás usando? ¿Intentó 'Limpiar' (Apple-Shift-k) a su objetivo? – hooleyhoop
XCode 4. Tal vez es básico, pero soy nuevo en el desarrollo de bibliotecas, y estoy confundido porque funciona, excepto cuando la biblioteca está construida desde otro proyecto, como una dependencia. Intentaré limpiar, pero dudo que ayude. – Julien
Solo quiero decir que tiene toda la razón al esperar que esto funcione sin problemas. La limpieza a menudo ayuda, por favor háganos saber. – hooleyhoop