LE MÉDIA DE L’IA QUI SERT VRAIMENT.Édition française · Comprendre & passer à l’action
OpenAI

Mettre à niveau un SDK Expo et corriger les dépendances

upgrading-expo

En bref

Donne les consignes pour mettre à niveau une version du SDK Expo et corriger les problèmes de dépendances. Les références du SKILL.md couvrent notamment la New Architecture (SDK 53 et suivants), les changements React 19 (SDK 54 et suivants), le compilateur React, les onglets natifs (SDK 55 et suivants), et la migration de la lecture et de l’enregistrement audio d’expo-av vers le module audio successeur.

Ce que ça fait

  • Planifie une montée de version du SDK Expo
  • Couvre New Architecture, React 19, onglets natifs et migration audio

Pour qui, et un exemple

Les équipes Expo qui passent à un SDK plus récent et doivent traiter les ruptures de dépendances.

Exemple de demande : « Passe ce projet au SDK Expo 55 : New Architecture, React 19, onglets natifs, et migration d’expo-av. »

On la présente comme un guide pour mettre à niveau une version du SDK Expo et corriger les problèmes de dépendances. Exemple rédigé par iadujour.fr à partir du SKILL.md, non testé.

Installer

Dans Codex : codex plugin add expo@openai-curated (marketplace officielle du dépôt).

codex plugin add expo@openai-curated

Fonctionne avec

  • Codex

Source : README : collection de plugins Codex ; la marketplace du dépôt s’appelle « Codex official ». D’autres agents ne sont pas nommés.

Niveau : Intermédiaire

Suppose un projet de l’éditeur et la maîtrise du SDK ou de la CLI correspondante.

À savoir

Dépôt officiel OpenAI. Ce sont des exemples de plugins Codex, souvent rédigés par l’éditeur du plugin (Figma, Stripe, Canva, etc.) et hébergés ici. Skill du plugin « expo » dans openai/plugins.

Extrait du SKILL.md

La description d’origine, celle que l’agent lit pour décider de charger la skill (en anglais) :

Guidelines for upgrading Expo SDK versions and fixing dependency issues

Citée depuis le SKILL.md au commit b2f3314 . Le dossier contient aussi 7 fichiers annexes (agents/, references/).

Le SKILL.md compte 126 lignes et 14 sections principales :

  • References
  • Beta/Preview Releases
  • Step-by-Step Upgrade Process
  • Breaking Changes Checklist
  • Prebuild for Native Changes
  • Clear caches for bare workflow
  • Housekeeping
  • Deprecated Packages
  • expo.install.exclude
  • Removing patches
  • Postcss
  • Metro
  • Hermes engine v1
  • New Architecture

Licence : MIT

Consultée le 10 novembre 2026 : fichier de licence d’un dossier parent (plugins/expo/LICENSE) . Licence déclarée dans le frontmatter : « MIT ». Titulaire : Copyright (c) 2025-present 650 Industries, Inc. (aka Expo).

La licence autorise la reprise : le texte intégral du SKILL.md est reproduit ci-dessous, sans modification, avec sa mention de licence.

Texte intégral du SKILL.md

Reproduit sans modification depuis openai/plugins (commit b2f3314) , © OpenAI, sous licence MIT (fichier de licence d’origine ).

Afficher le SKILL.md original (126 lignes, en anglais)
---
name: upgrading-expo
description: Guidelines for upgrading Expo SDK versions and fixing dependency issues
version: 1.0.0
license: MIT
---

## References

- ./references/new-architecture.md -- SDK +53: New Architecture migration guide
- ./references/react-19.md -- SDK +54: React 19 changes (useContext → use, Context.Provider → Context, forwardRef removal)
- ./references/react-compiler.md -- SDK +54: React Compiler setup and migration guide
- ./references/native-tabs.md -- SDK +55: Native tabs changes (Icon/Label/Badge now accessed via NativeTabs.Trigger.\*)
- ./references/expo-av-to-audio.md -- Migrate audio playback and recording from expo-av to expo-audio
- ./references/expo-av-to-video.md -- Migrate video playback from expo-av to expo-video

## Beta/Preview Releases

Beta versions use `.preview` suffix (e.g., `55.0.0-preview.2`), published under `@next` tag.

Check if latest is beta: https://exp.host/--/api/v2/versions (look for `-preview` in `expoVersion`)

```bash
npx expo install expo@next --fix  # install beta
```

## Step-by-Step Upgrade Process

1. Upgrade Expo and dependencies

```bash
npx expo install expo@latest
npx expo install --fix
```

2. Run diagnostics: `npx expo-doctor`

3. Clear caches and reinstall

```bash
npx expo export -p ios --clear
rm -rf node_modules .expo
watchman watch-del-all
```

## Breaking Changes Checklist

- Check for removed APIs in release notes
- Update import paths for moved modules
- Review native module changes requiring prebuild
- Test all camera, audio, and video features
- Verify navigation still works correctly

## Prebuild for Native Changes

**First check if `ios/` and `android/` directories exist in the project.** If neither directory exists, the project uses Continuous Native Generation (CNG) and native projects are regenerated at build time — skip this section and "Clear caches for bare workflow" entirely.

If upgrading requires native changes:

```bash
npx expo prebuild --clean
```

This regenerates the `ios` and `android` directories. Ensure the project is not a bare workflow app before running this command.

## Clear caches for bare workflow

These steps only apply when `ios/` and/or `android/` directories exist in the project:

- Clear the cocoapods cache for iOS: `cd ios && pod install --repo-update`
- Clear derived data for Xcode: `npx expo run:ios --no-build-cache`
- Clear the Gradle cache for Android: `cd android && ./gradlew clean`

## Housekeeping

- Review release notes for the target SDK version at https://expo.dev/changelog
- If using Expo SDK 54 or later, ensure react-native-worklets is installed — this is required for react-native-reanimated to work.
- Enable React Compiler in SDK 54+ by adding `"experiments": { "reactCompiler": true }` to app.json — it's stable and recommended
- Delete sdkVersion from `app.json` to let Expo manage it automatically
- Remove implicit packages from `package.json`: `@babel/core`, `babel-preset-expo`, `expo-constants`.
- If the babel.config.js only contains 'babel-preset-expo', delete the file
- If the metro.config.js only contains expo defaults, delete the file

## Deprecated Packages

| Old Package          | Replacement                                          |
| -------------------- | ---------------------------------------------------- |
| `expo-av`            | `expo-audio` and `expo-video`                        |
| `expo-permissions`   | Individual package permission APIs                   |
| `@expo/vector-icons` | `expo-symbols` (for SF Symbols)                      |
| `AsyncStorage`       | `expo-sqlite/localStorage/install`                   |
| `expo-app-loading`   | `expo-splash-screen`                                 |
| expo-linear-gradient | experimental_backgroundImage + CSS gradients in View |

When migrating deprecated packages, update all code usage before removing the old package. For expo-av, consult the migration references to convert Audio.Sound to useAudioPlayer, Audio.Recording to useAudioRecorder, and Video components to VideoView with useVideoPlayer.

## expo.install.exclude

Check if package.json has excluded packages:

```json
{
  "expo": { "install": { "exclude": ["react-native-reanimated"] } }
}
```

Exclusions are often workarounds that may no longer be needed after upgrading. Review each one.
## Removing patches

Check if there are any outdated patches in the `patches/` directory. Remove them if they are no longer needed.

## Postcss

- `autoprefixer` isn't needed in SDK +53. Remove it from dependencies and check `postcss.config.js` or `postcss.config.mjs` to remove it from the plugins list.
- Use `postcss.config.mjs` in SDK +53.

## Metro

Remove redundant metro config options:

- resolver.unstable_enablePackageExports is enabled by default in SDK +53.
- `experimentalImportSupport` is enabled by default in SDK +54.
- `EXPO_USE_FAST_RESOLVER=1` is removed in SDK +54.
- cjs and mjs extensions are supported by default in SDK +50.
- Expo webpack is deprecated, migrate to [Expo Router and Metro web](https://docs.expo.dev/router/migrate/from-expo-webpack/).

## Hermes engine v1

Since SDK 55, users can opt-in to use Hermes engine v1 for improved runtime performance. This requires setting `useHermesV1: true` in the `expo-build-properties` config plugin, and may require a specific version of the `hermes-compiler` npm package. Hermes v1 will become a default in some future SDK release.

## New Architecture

The new architecture is enabled by default, the app.json field `"newArchEnabled": true` is no longer needed as it's the default. Expo Go only supports the new architecture as of SDK +53.
Source. Fiche rédigée par iadujour.fr à partir de : Frontmatter, sections et corps du SKILL.md, README du dépôt. Consultée le 10 novembre 2026. openai/plugins .

Dans l’annuaire

Cas d’usage et guides qui partagent un thème, un métier ou un outil avec cette skill.

DANS L’ANNUAIRE

Cas d’usage liés.

Des fiches de l’annuaire qui partagent au moins deux mots-clés précis avec cette skill.

MÊME ÉDITEUR

Autres skills OpenAI : Développement mobile

Toute la catégorie
OpenAIDéveloppement mobile

Relier des composants Figma au code avec Code Connect

figma-code-connect

Crée et tient à jour les fichiers modèles Figma Code Connect (.figma.ts ou .figma.js) qui associent des composants Figma à des extraits de code.

Outils : CodexNiveau : Débutantmàj 26/08/2026
OpenAIDéveloppement mobile

Animer des nœuds Figma avec l’outil use_figma

figma-use-motion

Fournit le contexte motion et animation de l’outil MCP use_figma : images clés manuelles, styles d’animation, lissage et durée sur la frise.

Outils : CodexNiveau : Débutantmàj 09/07/2026
OpenAIDéveloppement mobile

Aller-retour entre Figma et SwiftUI

figma-swiftui

Couvre la traduction dans les deux sens entre Figma et SwiftUI (iOS, iPhone, iPad) : implémenter une maquette Figma en SwiftUI, ou renvoyer des vues, écrans ou jetons SwiftUI dans un fichier Figma.

Outils : CodexNiveau : Intermédiairemàj 24/06/2026
ÉCHANGES

Commentaires.

Un retour d’expérience, une question, une précision sur cette skill ? Les commentaires sont relus avant publication.

Commentaires publiés

Chargement des commentaires…

    Laisser un commentaire

    Charte de modération. Chaque commentaire est relu avant publication. Sont refusés : l’incitation à la haine, les propos injurieux ou discriminatoires, la publicité, le spam et les liens promotionnels, le hors-sujet et les données personnelles d’autrui.