2011-09-17 10 views

Respuesta

35

Utilice los objetivos. Para eso son exactamente.

Learn more about the concept of targets here.

Normalmente, la mayoría de los proyectos tienen un único objetivo, que corresponde a un producto/aplicación. Si define varios objetivos, puede:

  • incluyen algunos de los archivos de código fuente (o tal vez todos) en ambos objetivos, algunos en un objetivo y algunos en la otra
  • se puede jugar con configuración de generación de compila los dos objetivos usando diferentes configuraciones.

Por ejemplo, puede definir Precompilador macros para un objetivo y otras macros para el otro (digamos OTHER_C_FLAGS = -DPREMIUM en blanco "PremiumVersion" y OTHER_C_FLAGS = -DLITE para definir la macro LITE en el objetivo "LiteVersion") y luego incluya un código similar en su fuente:

-(IBAction)commonCodeToBothTargetsHere 
{ 
    ... 
} 

-(void)doStuffOnlyAvailableForPremiumVersion 
{ 
#if PREMIUM 
    // This code will only be compiled if the PREMIUM macro is defined 
    // namely only when you compile the "PremiumVersion" target 
    .... // do real stuff 
#else 
    // This code will only be compiled if the PREMIUM macro is NOT defined 
    // namely when you compile the "LiteVersion" target 

    [[[[UIAlertView alloc] initWithTitle:@"Only for premium" 
     message:@"Sorry, this feature is reserved for premium users. Go buy the premium version on the AppStore!" 
     delegate:self 
     cancelButtonTitle:@"Doh!" 
     otherButtonTitles:@"Go buy it!",nil] 
    autorelease] show]; 
#endif 
} 

-(void)otherCommonCodeToBothTargetsHere 
{ 
    ... 
} 
+1

Si está acostumbrado, piense en los objetivos como diferentes archivos make. Ellos tienen el mismo rol. – Cyrille

+2

Esto es enorme, gracias. Para que esto funcione realmente bien para mí, necesitaba hacer un objetivo de copia y luego actualizar la configuración de destino para usar un Info.plist diferente para mi nombre de paquete ect ... – Slee

+4

Tenga en cuenta que si agrega archivos adicionales a su proyecto, tenga cuidado para agregar el archivo a ambos objetivos y no solo al activo: al agregar el archivo, en el cuadro de diálogo que aparece para preguntar si desea copiar archivos o no, tiene una lista de sus objetivos y casillas de verificación frente a cada uno . (El estado de las casillas de verificación está guardado, por lo que probablemente deba verificarlo solo una vez) – AliSoftware

Cuestiones relacionadas