Dossiers >
Iphone : Soumission Apple-store
Iphone et Monotouch
Oct 2010: Cette page était d'actualité avec Iphone OS3 mais ne l'est plus avec Iphone OS4 car ça fonctionne bien avec ce nouvel OS. Je la laisse quand même car ça peut toujours aider qlq un à compiler un source Monotouch via Xcode (au cas où mono déconne) ou a définir un bon appID (ça c'est universel). Pour ceux qui se posent la question, il n'y a aucun problème à créer une application Monotouch pour OS4, les applications sont bien acceptées, contrairement aux limitations légales qu'avaient introduit Apple au début de l'OS4.
Ayant développé sur Iphone avec Monotouch (monodevelop, sous mac) et m'étant cassé la tête pour finaliser l'application pour la soumission Apple store, j'ai trouvé bon de réaliser cette page car aucune info ou presque ne circule sur internet. Je n'ai pas la prétention de remplacer les tutos existants (vous en trouverez certainement des bons), mais juste apporter une goutte d'eau qui vous permettra de solutionner vos problèmes de compilation et de certificats, problèmes que vous rencontrerez à coup sûre.
On suppose donc que vous avez développé et testé une application Iphone OS3 sous Monotouch (pour OS4, j'ai pas encore testé, surtout qu'il y a des problèmes avec la nouvelle licence... à venir). Arrivé à la phase finale, il va falloir créer des clefs et certificats apple afin de recompiler l'appli avec tout ça dedans. Et bien c'est pas la croix et la bannière, c'est un champs de croix et bannières. C'est en effet très très très très ... merdique et compliqué.
Donc voici les étapes principales permettant d'y parvenir (référez vous aux autres tutos dédiés à ça pour les détails, là je donne les grandes lignes et surtout la technique pour que ça marche!).
* vous avez normalement déjà votre clef développeur, certificat développeur, et certificat Iphone de dev d'installé. Et bien on va pas les utiliser !
Il faut aller sur votre apple dev interface pour créer plusieurs nouvelles choses :
- créez un jeu de clef distribution (comme celui de développement mais le second onglet),
- créez un appID, c'est à dire un identifiant unique pour l'application de la forme XXXXXXXX.com.votredomaine.votreappliname. Le point cruciale ici, c'est qu'il ne faut utiliser que des caractères alphanumériques, surtout pas de tirets (c'est là que j'ai perdu des heures à chercher pourquoi ça marchait pas) ou caractères spéciaux,
- créez un certificat distribution en utilisant votre appID ,
- téléchargez tout ça,
Une fois que vous avez installé ces certificats (double-cliquez sur chacun d'eux), il va falloir les utiliser pour recompiler votre appli. C'est là que ça ce complique.
- Sous monotouch, je n'ai jamais réussi à faire fonctionner mes certificats de distribution (provisioning profile missing from code signing settings), ça déconne (les certificats dev fonctionnent eux). c'est un comble sachant que le but final est quand même de créer une appli qu'on va distribuer sur apple store.
- Sous monotouch, pour pouvoir compiler l'appli avec les certificats distribution, ils faut passer par Xcode. Pour cela, compilez votre appli sous monotouch de façon classique en mode debug / Iphonesimulator avec votre profil développer. Ensuite, cliquez sur Debug in Xcode dans le menu exécuter afin d'ouvrir l'appli dans Xcode.
- Dans Xcode, l'appli est donc prête à être compilée mais il faut configurer les paramètres de compilation. Je vous laisse voir la doc apple pour ça car on est retourné dans un système classique et documenté. Il faut juste créer un profile distibution (décochez l'ajout des infos de debugage dans ce profil au passage, ce qui réduira d'une bonne dizaine de méga votre appli!), aller ensuite dans Target de l'appli, cliquez infos,et définir le certificat distribution (qui est déjà selectionnable normalement), et indiquer le BundleID.
- Compilez l'application via Xcode qui normalement doit fonctionner. Si ça ne fonctionne pas, vérifiez que le certificat distrib est bien défini, vérifiez que le bundle ID est simple (que des caractères alphanumériques, surtout pas de tiret).
- vous êtes prêt à envoyer votre appli
Ca parait simple, mais j'ai mis 2 jours à trouver la solution ! Je desespérais même d'en trouver une un jour.
Iphone et Monotouch : dernières mises à jour (29/11/2011)