Comment créer plusieurs applications à partir du même code partagé dans Xcode?

Je développe 2 applications différentes qui partagent 95% du même code et des vues. Quelle est la meilleure façon d'y parvenir en utilisant Xcode?

Utilisez des cibles. C'est exactement ce qu'ils sont pour.

En savoir plus sur le concept de cibles ici .

Typiquement, la majorité des projets ont une seule cible, qui correspond à un produit / application. Si vous définissez plusieurs cibles, vous pouvez:

  • inclure certains de vos files de code source (ou peut-être tous) dans les deux cibles, certains dans une cible et d'autres dans l'autre
  • vous pouvez jouer avec Build Settings pour comstackr les deux cibles en utilisant des parameters différents.

Par exemple, vous pouvez définir des macros précompilaires pour une cible et d'autres macros pour l'autre (disons OTHER_C_FLAGS = -DPREMIUM dans la cible "PremiumVersion" et OTHER_C_FLAGS = -DLITE pour définir la macro LITE dans la cible "LiteVersion"), puis inclure un code similaire dans votre source:

 -(IBAction)commonCodeToBothTargetsHere { ... } -(void)doStuffOnlyAvailableForPremiumVersion { #if PREMIUM // This code will only be comstackd if the PREMIUM macro is defined // namely only when you comstack the "PremiumVersion" target .... // do real stuff #else // This code will only be comstackd if the PREMIUM macro is NOT defined // namely when you comstack 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 { ... }