Publier une app iOS sans Mac : le guide Expo et EAS
23 septembre 2026, 8 min
Depuis un PC Windows, Expo et EAS compilent et envoient ton app iOS à Apple. Ce qui marche sans Mac, ce qui coince, et pourquoi il te faut un iPhone.
Peut-on publier une app iOS sans Mac ?
Oui. Tu peux publier une app iOS sans Mac si tu la construis avec Expo et React Native. EAS Build compile ton app sur des Mac hébergés par Expo, dans le cloud, et EAS Submit l'envoie ensuite vers App Store Connect. La documentation d'Expo le dit clairement : EAS Submit fonctionne sur macOS, Linux et Windows, tu n'as donc pas besoin d'un Mac pour livrer une build iOS.
Il te faut en revanche trois choses que rien ne remplace : un compte Apple Developer payant, un iPhone pour tester ton app pour de vrai, et un navigateur pour remplir la fiche dans App Store Connect. Le reste de ce guide détaille ce qui marche depuis un PC Windows, ce qui coince, et l'ordre des étapes.
Mes apps iOS passent toutes par cette chaîne : Expo, EAS Build, puis EAS Submit. Solys et TradaZen sont sur l'App Store de cette façon. Je travaille sur Mac, mais aucune étape de la publication n'en dépend : les builds sont faites dans le cloud d'Expo et l'envoi à Apple passe par la ligne de commande.
Comment Expo et EAS remplacent le Mac
Pour comprendre ce qui est possible, il faut savoir pourquoi le Mac était obligatoire. Une app iOS doit être compilée avec Xcode, l'outil d'Apple, qui ne tourne que sur macOS. Elle doit ensuite être signée avec un certificat lié à ton compte développeur, puis envoyée à App Store Connect.
Expo découpe ce travail en trois outils :
- Expo et React Native : tu écris ton app en JavaScript ou TypeScript, sur n'importe quel ordinateur.
- EAS Build : tu lances la commande depuis ton PC, le code part sur un Mac d'Expo, qui compile et signe l'app pour toi. Tu récupères un fichier prêt à installer ou à envoyer.
- EAS Submit : il prend cette build et l'envoie à App Store Connect. Après le traitement par Apple, elle apparaît dans TestFlight.
Le Mac existe toujours dans la chaîne. Simplement, ce n'est plus le tien. Si tu veux comprendre pourquoi je recommande cette stack aux débutants, lis la page React Native et Expo pour une app mobile.
Ce qui est possible depuis un PC Windows
Coder l'app
Tout le développement se fait sur Windows sans restriction : ton éditeur (VS Code, Cursor), Node.js, le terminal. Si tu codes avec l'aide de Claude ou de ChatGPT, rien ne change non plus. Sur ce sujet, lis créer une app iOS avec l'IA.
Voir ton app sur ton iPhone pendant que tu codes
Pour démarrer, l'app Expo Go, installée sur ton iPhone, lit un QR code affiché dans ton terminal et charge ton projet. Chaque modification apparaît sur le téléphone en quelques secondes. C'est idéal pour les premiers écrans. Depuis mai 2026, la version App Store d'Expo Go reste sur le SDK 54 : crée ton projet en choisissant la compatibilité avec elle, ou passe par eas go et TestFlight pour un SDK plus récent.
Expo Go a une limite : il ne contient que les modules natifs fournis par Expo. Dès que ton app utilise une bibliothèque native qui n'y est pas, comme le SDK de RevenueCat pour les abonnements, il te faut une build de développement : une version de ton app à toi, compilée par EAS Build, que tu installes sur ton iPhone.
Installer une build sur ton iPhone sans passer par l'App Store
EAS propose la distribution interne. Tu enregistres ton iPhone avec la commande eas device:create, puis tu lances une build avec la distribution internal. Tu reçois un lien d'installation. Apple limite cette méthode : un compte peut distribuer ainsi à au plus 100 iPhone par an, et chaque nouvel appareil demande une nouvelle build ou une nouvelle signature. Pour toi seul et quelques proches, c'est largement suffisant.
Gérer les certificats sans Xcode
La signature est ce qui bloque le plus de débutants sur Mac. Avec EAS, tu te connectes à ton compte Apple depuis la ligne de commande, et l'outil peut générer lui-même le certificat de distribution et le profil de provisionnement. Tu n'ouvres jamais le trousseau d'accès.
Envoyer ton app à Apple et la publier
eas submit --platform ios envoie ta build vers App Store Connect. Tu peux aussi enchaîner les deux étapes avec l'option --auto-submit de eas build. Tout le reste se passe dans le navigateur : la fiche App Store, les captures d'écran, les déclarations de confidentialité, les abonnements, TestFlight et l'envoi en revue. App Store Connect est une application web, elle marche très bien sous Windows.
Ce qui n'est pas possible (ou plus difficile) sans Mac
Le simulateur iOS en local
Le simulateur iOS fait partie de Xcode, donc il ne tourne pas sur Windows. En pratique, ce n'est pas grave : ton iPhone fait mieux que le simulateur pour tester. Expo a annoncé en septembre 2026 un simulateur iOS dans le cloud, EAS Simulator, encore en accès limité au moment où j'écris. Ne construis pas ton organisation dessus tant qu'il n'est pas ouvert à tous.
Déboguer du code natif
Si un plantage vient du code natif (Swift, Objective-C, une bibliothèque mal configurée), les outils de diagnostic d'Apple sont dans Xcode. Sans Mac, tu dépends des journaux de build d'EAS et d'un outil comme Sentry, qui remonte les plantages de l'app installée. C'est faisable, mais plus lent. D'où l'intérêt de rester, pour une première app, sur des bibliothèques compatibles avec Expo.
Écrire des extensions natives à la main
Widgets, extensions de notification, cibles natives spécifiques : c'est possible avec Expo grâce aux plugins de configuration, mais sans Xcode pour inspecter le projet généré, chaque erreur coûte une build de plus. Pour une première app, garde ces fonctions pour plus tard.
Compiler en local
Les builds locales d'EAS (option --local) ne sont pas prises en charge sous Windows. Sur PC, tes builds iOS passent donc par le cloud d'Expo. L'offre gratuite d'EAS inclut un nombre limité de builds par mois, avec une file d'attente : vérifie les conditions actuelles sur la page tarifs d'Expo avant de planifier une semaine de travail intense.
Le compte Apple Developer : obligatoire, sans exception
Aucune astuce ne contourne ce point. Sans adhésion à l'Apple Developer Program, pas d'App Store Connect, pas de TestFlight, pas de distribution interne, et pas d'envoi à l'App Store. L'adhésion coûte 99 $ par an, prélevés dans ta monnaie.
Deux conseils avant de t'inscrire :
- Choisis bien entre compte individuel et organisation. En individuel, c'est ton nom qui s'affiche comme vendeur sur l'App Store. En organisation, c'est le nom de ta structure, mais Apple demande alors un numéro D-U-N-S et une vérification plus longue.
- Prévois quelques jours. La validation du compte n'est pas toujours immédiate. Inscris-toi dès que tu sais que tu vas publier, pas la veille de l'envoi.
Le besoin réel d'un iPhone pour tester
On peut techniquement publier une app iOS sans jamais l'avoir tenue en main. Je te le déconseille fermement, et Apple aussi : ses règles de revue (guideline 2.1) demandent que l'app ait été testée sur un appareil, pour les bugs et la stabilité, avant l'envoi. Tes utilisateurs, eux, n'auront que ça : un vrai iPhone.
Voici ce que seul un vrai iPhone te montre :
- Le premier lancement réel, sans serveur de développement : c'est là que se cachent les plantages au démarrage.
- Les achats intégrés en environnement de test, pour vérifier que ton paywall affiche les bons prix et que l'abonnement débloque bien l'app.
- Les notifications, la caméra, les vibrations, les permissions, qui se comportent différemment ou pas du tout ailleurs.
- La mise en page réelle : l'encoche ou la Dynamic Island, la barre d'accueil, le clavier qui recouvre un champ.
- La fluidité, qu'un ordinateur puissant masque souvent.
Un iPhone d'occasion récent suffit, à condition qu'il fasse tourner une version d'iOS prise en charge par ta version du SDK Expo. Et si tu peux, emprunte aussi un iPhone d'une taille différente : une app qui passe sur un grand écran peut être coupée sur un petit. C'est exactement ce qui m'a valu un refus sur Solys, raconté dans pourquoi Apple refuse une app.
Sans Mac, c'est possible. Sans iPhone, tu envoies à Apple une app que tu n'as jamais vue fonctionner.
Les étapes, dans l'ordre, depuis Windows
- Crée ton projet avec
npx create-expo-appet teste tes premiers écrans avec Expo Go. - Installe EAS CLI avec
npm install -g eas-cli, puiseas logineteas build:configure. - Inscris-toi à l'Apple Developer Program dès que ton projet prend forme.
- Enregistre ton iPhone avec
eas device:createet lance une build de développement. - Crée ta fiche d'app dans App Store Connect, avec le même identifiant de bundle que dans ta configuration Expo.
- Lance la build de production avec
eas build --platform ios. - Envoie-la avec
eas submit --platform ios, puis teste-la dans TestFlight. Le guide TestFlight pour tester son app détaille cette étape. - Remplis la fiche et envoie en revue depuis le navigateur.
Trois pièges reviennent souvent à ce stade. Le numéro de build doit augmenter à chaque envoi : active l'incrémentation automatique d'EAS pour ne plus y penser. La question sur le chiffrement bloque chaque build tant que tu n'y as pas répondu : tu peux la déclarer une fois pour toutes dans la configuration de l'app. Et l'identifiant de bundle doit être identique partout, sinon EAS Submit ne trouve pas ton app. Pour la suite, de la fiche à la validation, la page publier une application sur l'App Store couvre chaque étape.
Publier ta première app, sans Mac et sans te perdre
Le Mac n'est plus le vrai obstacle. Les vrais obstacles sont ailleurs : choisir une app qui a une chance de rapporter, brancher des abonnements qui marchent, préparer un dossier qu'Apple accepte. C'est ce que je travaille avec un petit groupe dans L'Accélérateur iOS, que tu sois sur Mac ou sur PC.
Le format : 4 semaines, 3 lives par semaine en groupe de 10 places au plus, avec les replays. Tu gardes un accès à vie au groupe privé Discord, aux replays et aux modèles, et ton dossier App Store est relu avant l'envoi. Le prix est de 489 €, ou 3 × 163 € sans frais avec Klarna. La prochaine session commence le lundi 12 octobre 2026.
La décision finale de publier ton app reste chez Apple, et aucun accompagnement ne peut la garantir. Ce que je peux t'apporter, c'est la méthode que j'applique sur mes propres apps et des réponses concrètes quand tu bloques. Si ça te parle, tout est détaillé ici.