Un petit article (mais pas si petit que ça) aujourd’hui pour expliquer comment faire une version lite (ou free) de son application iOS sous XCode.
Quand on fait une application payante, il est toujours conseillé d’en faire une version lite/free.
Cela permet aux utilisateurs de tester votre produit et ainsi d’acheter la version complète si ils aiment.
Évidemment l’objectif n’est pas de creer un 2ieme projet et d’enlever du code, vous imaginez la maintenance quasi impossible au fur et à mesure de l’évolution de l’application…

Imaginons que votre projet est terminé et que vous souhaitiez mettre en place la version lite.

1. Tout d’abord dupliquer la target et nommer le avec le nom du projet et le prefixe Lite (dans notre exemple TechnotGeekLite)

2. Un fichier plist va être crée, renommer le également :
>  TechnotGeek copy-Info.plist devient TechnotGeekLite-Info.plist

3. On remarquera que xcode nous indique que le fichier n’existe pas, nous allons corriger cette erreur en lui indiquant le bon fichier à utiliser (celui que l’on vient de renommer)

Allons faire un tour dans l’onglet Build Settings (de la target Lite évidemment), et modifier la ligne « Info.plist file » dans la sous rubrique Packaging en mettant le nom de notre nouveau fichier plist

4. Juste pour être propre, nous allons rapidement changer le nom dans le scheme.

Si on clique dessus on remarquera qu’il y a les 2 targets mais notre version Lite a encore l’ancien nom copy

On va donc choisir Manage Schemes pour changer cela

On a une fenêtre qui va s’ouvrir avec les 2 schemes

Ensuite il suffit de cliquer sur la cellule pour en modifier le nom

5. Pour le moment, on n’a rien fait d’autre que de créer une copie de notre version complète proprement.
Créons le flags Lite/Free (…il a tout compris…)

Aller dans l’onglet Build Settings de votre target Lite/Free et chercher la ligne « Other C Flags »

Pour chaque version Debug et Release ajouter un build settings en cliquant sur le petit +

Ensuite cliquer sur la colonne de droite pour lui ajouter une valeur et ajouter « -DLITE_VER », vous devez obtenir cela

6. Voila le plus gros du travail est fait!
Il suffit maintenant d’utiliser les Preprocessor directives dans le code pour choisir ou pas si un morceau de code est dans la version Lite/Free ou pas

#ifdef LITE_VER
  NSLog(@"LITE VERSION");
#else
  NSLog(@"FULL VERSION");
#endif