Dans une vraie app
Dans un projet, l’autolinking se voit dans le Podfile (config = use_native_modules!), dans android/settings.gradle (le plugin React Native Gradle) et dans android/app/build.gradle (autolinkLibrariesWithApp()). Chaque librairie doit fournir un .podspec à sa racine et, côté Android, un build.gradle ; une librairie qui en manque ne sera pas linkée, sans erreur explicite. Pour exclure une librairie sur une plateforme ou pointer vers un chemin local, react-native.config.js accepte une entrée dependencies avec platforms.ios: null ou root.
Le cas qui fait perdre des heures est le monorepo. L’autolinking cherche dans le node_modules de l’app ; une dépendance hissée à la racine du workspace ou installée en mode isolé (pnpm) peut lui échapper. Expo a ajouté experiments.autolinkingModuleResolution dans app.json au SDK 54, activé automatiquement pour les apps en monorepo depuis le SDK 55. Quand un module natif « n’existe pas » au runtime alors que le package est installé, je commence par npx expo-modules-autolinking search ou npx react-native config pour voir ce que le build voit réellement.
Avec le support expérimental de Swift Package Manager (React Native 0.87 et 0.88), l’autolinking iOS prend une seconde forme : npx react-native spm génère les références de packages, et une librairie doit alors fournir un Package.swift (ou le générer avec npx react-native spm scaffold), ses réglages SwiftPM allant dans la section swiftpmConfig de son package.json.
Termes liés
CocoaPods
Le gestionnaire de dépendances iOS historique de React Native (Podfile, pod install, .xcworkspace), en maintenance et en cours de remplacement par SwiftPM.
Expo Modules API
L’API d’Expo pour écrire des modules et vues natifs en Swift et Kotlin avec un DSL commun, sans Objective-C ni boilerplate de bridge.
Monorepo
Un dépôt avec plusieurs packages liés par les workspaces du gestionnaire de paquets ; à surveiller : Metro, l’autolinking et le hissage des dépendances.
Swift Package Manager (SwiftPM)
Le gestionnaire de paquets officiel de Swift, intégré à Xcode, que React Native adopte en remplacement de CocoaPods (expérimental en 0.87 et 0.88).
Prebuild (Continuous Native Generation)
La commande Expo qui génère les dossiers android et ios à partir de app.json et des config plugins, au lieu de les maintenir à la main.