Skip to content

Construire Snag pour TestFlight avec EAS ​

Procédure pour un membre invité dans l'organisation Expo snag-bis. Mise à jour le 31 octobre 2026 après le changement de comptes. Le guide Apple, Expo et TestFlight décrit la configuration complète, les identifiants actuels, OAuth et les dernières validations.

Préparer une copie propre de staging ​

L'accès au dépôt GitHub et l'invitation Expo sont distincts. Accepter l'invitation avec son propre compte Expo ; ne pas partager le compte d'un autre membre.

Depuis Git Bash, dans le dépôt poc-tcg-collector déjà cloné :

bash
git fetch origin staging
git worktree add --detach ../snag-ios-testflight origin/staging
cd ../snag-ios-testflight
git status --short
npm ci

Le worktree évite d'envoyer des modifications locales du dépôt principal à EAS. Si ../snag-ios-testflight existe déjà, y vérifier git status --short avant de le mettre à jour :

bash
cd ../snag-ios-testflight
git fetch origin staging
git switch --detach origin/staging
git status --short
npm ci

Ne pas forcer le changement de commit si le worktree contient du travail à conserver. Pour un premier clone, cloner le dépôt GitHub, puis exécuter les commandes ci-dessus dans ce clone.

Vérifier le compte et le projet Expo ​

La configuration de staging doit conserver owner: 'snag-bis', le slug snagapp, le projet EAS 9cde6413-cdf8-4525-90ee-4030ff02b7a5 et le bundle iOS io.snag-app.tcg. Elle utilise le profil production et ses credentials distants. La cible submit.production.ios.ascAppId est 6828577293. Ne pas lancer eas init ni créer un autre projet.

Dans le worktree propre :

bash
node --version
npx eas-cli@latest login
npx eas-cli@latest whoami
npx eas-cli@latest project:info

Se connecter avec le compte Expo invité. project:info doit indiquer @snag-bis/snagapp et l'identifiant EAS ci-dessus. Si l'accès est refusé, vérifier le compte affiché par whoami, l'acceptation de l'invitation et le rôle accordé dans l'organisation. L'accès GitHub seul ne donne pas accès à EAS.

Contrôler, construire et envoyer ​

bash
git status --short
npm run lint
npm run typecheck
npm test
npx eas-cli@latest build --platform ios --profile production --auto-submit --non-interactive

N'exécuter la dernière commande qu'une fois les contrôles validés : elle consomme un build du quota de l'organisation. EAS construit sur macOS, signe avec les credentials du projet, incrémente le numéro de build distant, puis confie le binaire à EAS Submit. Aucun Mac ou abonnement Apple Developer personnel n'est requis pour le membre invité lorsque ces credentials sont déjà configurés. Ne pas remplacer les clés ni réinitialiser le numéro de build.

--auto-submit envoie le build iOS à App Store Connect pour TestFlight. Le libellé EAS « Submitting your app to Apple App Store Connect » décrit cet envoi ; il ne publie pas l'application sur l'App Store et ne demande pas sa revue pour une sortie publique. Une publication nécessiterait une action distincte dans App Store Connect.

Après « Build finished », le message « waiting for an available submitter » signifie que la soumission attend un worker EAS disponible. Il n'y a rien à saisir ni à relancer. Le terminal peut rester ouvert ; Ctrl+C arrête seulement l'attente locale et ne prouve pas que la soumission distante a été annulée. Vérifier son état avant toute nouvelle tentative :

bash
npx eas-cli@latest submit:list --platform ios

Les états in-queue et in-progress indiquent qu'il faut encore attendre. finished confirme l'envoi à Apple ; errored demande de consulter le détail et de corriger la cause. Conserver les liens de build et de soumission affichés par EAS : la compilation et l'envoi sont deux résultats distincts. Après l'envoi, Apple traite encore le binaire avant qu'il apparaisse dans TestFlight. L'invitation Expo ne remplace pas l'invitation TestFlight sur l'iPhone.

Si le build a réussi mais que la soumission a échoué, corriger la cause et renvoyer ce même build, sans recompiler :

bash
npx eas-cli@latest submit --platform ios --profile production --id IDENTIFIANT_DU_BUILD --non-interactive

Ne pas renvoyer un build déjà accepté par Apple. Si EAS annonce un quota épuisé, des credentials absents ou une erreur App Store Connect, demander au responsable de l'organisation de vérifier la configuration avant une nouvelle tentative.

Références ​