Soumettre une application IOS (et Android) avec Titanium

Pour développer l’application Iphone, j’ai touché pour la première fois à l’univers Mac. Je dois admettre que beaucoup de choses sont « mieux » et plus simples que Windows et Ubuntu, y compris le développement d’applications.

SAUF pour la soumission de l’application à Apple. Là j’y ai bien passé 5 soirées et j’ai bien cru ne jamais y arriver tellement je ne comprenais pas le(s) problème(s). Je couche donc sur écran les manœuvres pour éviter à un autre bougre de galérer autant :-). Ensuite, vous n’aurez plus qu’à jeter un oeil sur http://appreviewtimes.com pour savoir combien de jours attendre (entre 5 et 10…).

Pour commencer, il y a un tutoriel efficace sur le site de tutsplus par exemple. J’ajouterai à ce billet quelques astuces qui m’ont servi pour l’adaption de l’application pour Android.

Pour moi l’élément à retenir dedans est qu’il faut déclarer le numéro de version sur le site itunesconnect AVANT de générer (et surtout valider) le livrable. Et a la fin, revenir sur ce même site pour soumettre l’application (xcode ne suffit pas).

En complément de ces informations, il y a d’autres choses à savoir pour le mariage Titanium / IOS :

– Penser dès le départ à prévoir un format SVG (donc vectoriel) pour toutes les images que vous utilisez. Selon les écrans, vous aurez souvent besoin d’au moins deux tailles d’images. Le format SVG (vectoriel) permet d’éviter d’avoir des effets de pixellisation.

– Utiliser le site http://ticons.fokkezb.nl pour générer automatiquement les formats de logos propres à chaque plateforme et chaque résolution.- Utiliser absolument un logo ayant le nom « appicon.png«  dans le fichier « tiapp.xml« . Ce n’est pas mentionné dans la doc, nous avons le « droit » de le changer mais au moment de la validation IOS, on vous grondera avec un message d’erreur qui n’a rien à voir (« mauvais format d’image »). Notez qu’un autre nom ne pose aucun souci sur Titanium. Qu’ai-je été bête de vouloir mettre un nom de logo plus parlant. Ne faites pas la même erreur 🙂

– Le fichier plist.info dont les développeurs natifs parlent souvent est généré à partir du fichier tiapp.xml dans le repertoire build. Si on vous dit qu’il y a une erreur à cause du fichier plist.info, c’est que votre fichier tiapp.xml a un souci.

– Le numéro de version IOS doit comporter 3 nombres (exemple : 1.2.0). Ce numéro doit être le même que dans Itunes Connect.

– Au moment de générer le livrable, veiller à fermer xcode sous peine de générer un livrable pour Mac au lieu d’Itunes. Pour trouver le livrable généré, ouvrez un projet quelconque puis dans le menu Window > Organizer.

 

Astuces

– Lors de la soumission, vous êtes obligés de fournir des copies d’écrans de différents appareils (ipad + iphone + retina notamment). Personnellement, je ne possédais qu’un iphone 4S donc j’étais loin du compte. Sur Android, il suffit de faire CTRL+S sur l’émulateur Titanium pour enregistrer des screenshots. Sur IOS, il faut faire CMD+CTRL+C puis dans l’aperçu des images, faire CTRL+N pour créer une nouvelle image avant de l’enregistrer. En effet, la screenshot automatiquement générée sur le bureau générera une erreur.

– L’émulateur Android est affreusement, insupportablement l-e-n-t. Le logiciel Genymotion est une très bonne alternative même si elle est payante. En utilisant la ligne de commande pour construire le fichier APK puis en glissant ce dernier dans Genymotion, je divise par au moins trois le temps de démarrage ! Et quand le build plante, il plante tout de suite.

Configuration de tiapp.xml

Nickel, l’application est disponible sur Itunes ! Je relance l’ensemble sur Android : catastrophe. Les icônes, images sont mal dimensionnées. Il y a un effet minipouce dans le monde des géants, ou l’inverse, selon les écrans. Voici le paramétrage qui a permis de remettre un peu d’équilibre dans tout cela.

Pour que les images et les icônes du menu se retaillent un minimum en fonction de la résolution, il faut ajouter la ligne suivante dans tiapp.xml :

<supports-screens android:anyDensity="false"/>

Pour que le texte ne soit pas rikiki sur des grands écrans et pour éviter de devoir spécifier « sp » et « dp » partout, qui sert à donner une taille relative aux polices :

<property name="ti.ui.defaultunit" type="string">dp</property>

Android attend une valeur entière comme numéro de version. Pour vous laisser la possibilité d’avoir une version contenant une décimale, vous pouvez surcharger le fichier tiapp.xml et utiliser l’attribut versionName.

xmlns:android="http://schemas.android.com/apk/res/android">

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *