Guide

Publier un jeu sur l'App Store sans Mac : notre build dans le cloud

Comment nous avons mené un jeu HTML5 d'un PC Windows jusqu'à l'examen de l'App Store avec Capacitor, Codemagic et TestFlight, et les erreurs qui nous ont coûté des builds.

Illustration principale du template Sunset Rally sur le Polar Games Marketplace.

Oui, on peut publier un jeu sur l'App Store sans Mac. Il faut toujours un Mac, mais on le loue : un jeu HTML5 est empaqueté avec Capacitor sur votre PC, un service cloud comme Codemagic le compile et le signe sur ses propres machines Mac, le build part vers App Store Connect et TestFlight, et vous terminez la fiche, les informations de confidentialité et la soumission dans le navigateur. Ce dont vous ne pouvez pas vous passer, c'est d'un iPhone, car quelqu'un doit jouer au build avant Apple.

Nous l'avons fait depuis Windows avec notre propre jeu d'action, Little Ninja Dash. Le premier build cloud réussi a pris environ six minutes, et l'application est partie en App Review le 19 octobre 2026, où nos relevés l'indiquent En attente d'examen. Ce guide ne donne pas de résultat d'examen. Les faits sur Apple et Codemagic viennent de leurs pages officielles, consultées le 30 octobre 2026. Le reste est ce que nos notes rapportent, y compris ce qui a mal tourné.

Ce qu'il faut pour publier sur l'App Store sans Mac

  • Une adhésion à l'Apple Developer Program : 99 dollars US par année d'adhésion. Particuliers et organisations peuvent s'inscrire. Les organisations ont besoin d'un numéro D-U-N-S et d'un site web public.
  • Un compte Codemagic. Son offre gratuite pour les particuliers comprend 500 minutes de build macOS M2 par mois et un build à la fois ; au-delà, chaque minute sur Mac mini M2 coûte US$0.095. Les minutes gratuites sont réservées aux utilisateurs individuels, pas aux équipes.
  • Un dépôt Git privé avec votre projet. Codemagic compile depuis le dépôt que vous connectez. Avec nos templates, un dépôt privé est obligatoire : un dépôt public redistribuerait le code source, ce que la licence interdit.
  • Un iPhone avec l'application TestFlight, pour tester le vrai build.
  • Un jeu qui fonctionne hors ligne depuis son propre dossier, empaqueté avec Capacitor.

Depuis le 28 avril 2026, Apple exige que les applications envoyées sur App Store Connect soient compilées avec Xcode 26 ou plus récent et un SDK iOS 26. La page iOS de Capacitor indique aussi Xcode 26.0 ou plus récent et prend en charge iOS 15 et au-delà. Xcode ne tourne que sur macOS, c'est pourquoi le build se fait sur les machines de Codemagic et non sur votre PC.

Les éditions de nos templates sont des jeux pour navigateur. Chaque page d'édition indique que les builds d'applications natives ne sont pas inclus. Une licence couvre un produit final, et vous pouvez publier ce jeu où vous voulez, y compris sur l'App Store et Google Play. Vous ne pouvez pas revendre le template lui-même. Si vous prévoyez de faire payer les joueurs, avec une application payante ou des achats intégrés, demandez-nous d'abord.

Parcourir les templates et ce que contient chaque édition

Étape 1 : ajouter le projet iOS sous Windows

Si vous avez déjà un projet Capacitor pour Android, installez @capacitor/ios et lancez npx cap add ios. Cela crée le dossier ios/, même sous Windows. Vous ne pouvez pas l'ouvrir dans Xcode en local, donc chaque changement du projet natif est une modification de fichier que vous vérifiez au build cloud suivant.

  • Icône : un PNG de 1024 × 1024 sans transparence.
  • Appareils et orientation : notre jeu est réservé à l'iPhone et au mode paysage. Prendre en charge l'iPad ajoute des captures pour iPad et davantage de mises en page à tester.
  • Chiffrement : l'aide d'Apple sur la conformité à l'exportation conseille de mettre à jour l'Info.plist de l'application pour ne pas répondre aux questions sur le chiffrement à chaque soumission. Notre jeu n'utilise que le HTTPS du système, nous avons donc mis ITSAppUsesNonExemptEncryption à false.
  • Fichiers intégrés uniquement : le jeu est dans l'application et ne charge jamais notre site. La règle 4.2 d'Apple demande des applications qui aillent au-delà d'un site web reconditionné.

Vous partez d'un template ? Velvet Pool fait partie de ceux que nous avons empaquetés avec Capacitor pour Google Play : son dossier de jeu a donc déjà franchi cette étape sous Android. Aucun de nos templates n'est encore passé par l'examen de l'App Store.

Voir Velvet Pool, un template déjà empaqueté avec Capacitor

Étape 2 : signer sans Mac ni Trousseau

La signature était la partie qui exigeait un Mac. Avec une clé API App Store Connect, Codemagic peut la faire dans le cloud.

  1. Sur le site Apple Developer, créez un App ID (bundle identifier) pour le jeu, avec In-App Purchase si vous y vendez quelque chose.
  2. Dans App Store Connect, créez la fiche de l'application avec ce bundle ID, un SKU et la langue principale.
  3. Générez une clé API App Store Connect. La documentation de Codemagic recommande une clé dédiée à Codemagic. Ajoutez-la dans les réglages d'intégration de Codemagic et ne mettez jamais le fichier de la clé dans votre dépôt.
  4. Laissez Codemagic générer le certificat de distribution et récupérer le profil de provisionnement avec la clé. Il peut récupérer les certificats qu'il a générés auparavant et les profils du portail Apple Developer.

Ce qui a mal tourné chez nous

  • Nos deux premiers builds ont échoué parce qu'aucun profil de provisionnement n'avait encore été créé pour le bundle ID. Préparez le certificat et le profil avant le premier build.
  • Un profil importé dans Codemagic sans nom de référence ne fonctionnait pas, et le bouton échouait sans message. Renseignez toujours le nom.
  • La première configuration de la clé API a échoué parce que nous avions mal tapé l'Issuer ID. Copiez-le et collez-le depuis la page des clés d'Apple.
  • Les numéros de build doivent toujours augmenter. Demander le dernier numéro à Apple échouait tant qu'un envoi précédent était en traitement, nous sommes donc passés à un numéro dérivé de l'horloge.

Étape 3 : compiler sur Codemagic et tester sur TestFlight

La recette de build se trouve dans un fichier codemagic.yaml du dépôt. La nôtre installe les dépendances, prépare les fichiers du jeu, les synchronise dans le projet iOS avec npx cap sync ios, applique les profils et compile l'IPA sur une machine Mac mini M2. Codemagic publie ensuite le build sur App Store Connect. Notre premier build réussi a pris environ six minutes, et le build de production suivant moins de quatre.

Une surprise : avec submit_to_testflight réglé sur false, Codemagic a quand même envoyé le build sur App Store Connect. La documentation de Codemagic décrit cette option comme celle requise pour distribuer aux groupes bêta.

Limites de TestFlight

  • Testeurs internes : jusqu'à 100 utilisateurs App Store Connect de votre équipe.
  • Testeurs externes : jusqu'à 10 000, une fois votre premier build destiné aux tests externes approuvé par App Review.
  • Un build reste disponible pour les testeurs jusqu'à 90 jours.

L'invitation d'un testeur interne reste en attente tant qu'elle n'est pas acceptée depuis l'e-mail de TestFlight, et l'application n'apparaît pas dans TestFlight avant cela. Vérifiez le dossier des spams.

Ce que l'iPhone a trouvé et que Windows ne pouvait pas voir

  • Les fichiers audio enregistrés ne se chargeaient pas. Dans l'application, fetch renvoyait le statut 0 avec les bons octets, et notre code le traitait comme une erreur. Accepter le statut 0 pour les fichiers locaux a réglé le problème.
  • En paysage, des boutons étaient coupés près de l'encoche. Nous avons refait la mise en page des résultats et testé chaque coin.
  • Les écrans d'achat partagés avec Android mentionnaient encore Google Play. Sur iOS, ils indiquent désormais App Store.
  • Les achats de test faits dans TestFlight ne pouvaient pas être réinitialisés, les builds de test ont donc reçu un bouton pour simuler l'absence d'achat. Les builds destinés au store ne l'ont pas.

Étape 4 : fiche App Store Connect, confidentialité et classification par âge

Le reste se passe dans le navigateur. Voici l'ordre qui a fonctionné pour nous.

  1. Informations sur l'app : sous-titre, catégorie et questionnaire de classification par âge. Répondez honnêtement en fonction de ce que le jeu montre réellement.
  2. Prix et disponibilité : prix et pays. La disponibilité sur Mac et Apple Vision Pro était activée par défaut. Nous l'avons désactivée parce que notre jeu est conçu pour le tactile.
  3. Confidentialité de l'app : Apple exige ces informations pour les nouvelles applications et les mises à jour, y compris les pratiques des partenaires tiers dont le code est dans l'application, comme les régies publicitaires et les SDK. L'URL d'une politique de confidentialité publique est obligatoire.
  4. Achat intégré, s'il y en a : noms, descriptions, une capture pour l'examen et des notes pour l'examinateur.
  5. Page de la version : description, mots-clés, URL de support et de marketing, copyright, le build, notes d'examen et option de publication. Nous avons choisi la publication manuelle.
  6. Les captures d'écran, puis chaque langue supplémentaire avec ses propres textes et captures.
  • Captures d'écran : la règle 2.3.3 dit qu'elles doivent montrer l'application en cours d'utilisation, pas seulement l'écran titre ou un écran de démarrage. Les nôtres sont de vraies captures du jeu.
  • Nom de l'application : un nom que nous voulions était déjà pris sur l'App Store. Gardez un deuxième nom en réserve, ou un nom avec une courte partie descriptive.
  • Notes d'examen : nous avons écrit que le jeu est complet dans l'application, fonctionne hors ligne, ne demande pas de connexion, et où trouver l'achat et le bouton de restauration.

Lire nos conditions de licence avant de publier un template en application

Étape 5 : soumettre, et ce qu'Apple vérifie

Pour soumettre, il faut publier les réponses sur la confidentialité de l'app et confirmer qu'elles sont exactes, puis envoyer le brouillon de soumission. La nôtre est partie le 19 octobre 2026 avec la version de l'application et son achat unique, et le statut est passé à En attente d'examen. Si l'examen revient avec un refus, la réponse passe par le Resolution Center, avec des faits, pas par une nouvelle soumission à l'aveugle.

Pour un jeu issu d'un template, trois règles comptent surtout. La 4.2 demande plus qu'un site web reconditionné, alors gardez le jeu dans l'application. La 4.3(a) demande de ne pas créer plusieurs bundle ID d'une même application. La 4.3(b) indique qu'Apple ne veut pas d'applications impossibles à distinguer de ce qui est déjà largement disponible. Un reskin doit changer les règles, le contenu et l'interface, pas seulement les graphismes.

Ce que contiennent nos templates, et ce que nous pouvons faire pour vous

Chaque template comprend le dossier du jeu prêt à héberger, un code source lisible, un manuel et 6 mois de support, ou 12 avec l'extension. Le support couvre l'installation et l'utilisation des fichiers fournis et la correction des défauts reproductibles. Un wrapper iOS, les annonces natives, les achats intégrés, la configuration du build cloud et la fiche App Store sont des services à part.

Si vous préférez ne pas configurer vous-même la signature et Codemagic, envoyez-nous le template, votre plan pour le compte Apple et l'échéance. Nous répondons avec le périmètre, le prix et le délai avant que le travail commence. Nous ne publions pas de grille tarifaire pour le travail sur mesure.

Demander un devis pour amener votre jeu sur l'App Store

Questions fréquentes

Puis-je publier un jeu iPhone sans posséder de Mac ?

Oui. Le build demande toujours macOS et Xcode, mais un service cloud comme Codemagic les fournit. Tout le reste, d'App Store Connect à TestFlight, se fait dans un navigateur et sur un iPhone.

Combien coûte une publication sur l'App Store ?

L'Apple Developer Program coûte 99 dollars US par année d'adhésion. L'offre gratuite pour particuliers de Codemagic comprend 500 minutes macOS M2 par mois, et les minutes supplémentaires sont facturées à la minute. Ajoutez la licence du jeu et les visuels du store.

Ai-je besoin d'un iPhone ?

Pour de vrais tests, oui. Notre iPhone a révélé un son manquant, des boutons coupés et des noms de store erronés que le build sous Windows et les tests dans le navigateur ne montraient pas.

Apple acceptera-t-il un jeu HTML5 empaqueté dans une application ?

Nous ne pouvons pas promettre de résultat. La règle 4.2 demande plus qu'un site web reconditionné : nous intégrons donc le jeu complet dans l'application, le faisons fonctionner hors ligne et lui donnons des fonctions natives. La règle 4.3 s'applique aussi aux reskins.

Vos templates incluent-ils un build iOS ?

Non. Nos éditions sont des jeux pour navigateur, et les pages des produits indiquent que les builds d'applications natives ne sont pas inclus. Vous pouvez suivre ce parcours vous-même ou nous le commander sur devis.