Dans une vraie app
Dans un projet, la commande propre est bundle exec pod install depuis ios/, avec la version de CocoaPods épinglée dans Gemfile.lock ; pod install global avec une autre version est la première cause de « ça marche chez moi ». Les variables qui comptent se passent au même moment : RCT_NEW_ARCH_ENABLED (sans effet depuis la 0.82), RCT_USE_PREBUILT_RNCORE=0 pour compiler React Native depuis les sources, RCT_HERMES_V1_ENABLED=0 pour revenir à l’ancien Hermes. Sur Expo, le Podfile est généré par prebuild et se configure via expo-build-properties (useFrameworks, deploymentTarget), jamais à la main.
Les pannes classiques : un Podfile.lock en conflit après un merge (le régénérer plutôt que le résoudre ligne à ligne), un cache corrompu (pod deintegrate puis pod install), une librairie qui exige use_frameworks! :linkage => :static alors qu’une autre le refuse, et le fameux échec de téléchargement sur boost ou hermes-engine derrière un proxy d’entreprise.
Pour l’après-CocoaPods, le passage à Trunk en lecture seule ne casse pas les builds existants, mais les librairies ne recevront plus de mises à jour par ce canal. Pour un projet React Native, la trajectoire est fixée par le cœur : SwiftPM expérimental en 0.87 et 0.88 (npx react-native spm), défaut visé en 0.89 avec repli possible sur CocoaPods, et retrait de CocoaPods dans une version ultérieure. Expo SDK 58 a découpé ses sources iOS en cibles SwiftPM pour préparer ce passage.
Termes liés
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).
Autolinking
Le mécanisme qui découvre les librairies natives dans node_modules et les ajoute au Podfile et à Gradle sans édition manuelle.
XCFramework
Le format d’Apple pour livrer un framework binaire multi-plateformes (device, simulateur, macOS) en un bundle ; React Native y livre son cœur précompilé.
Prebuilt (React Native précompilé)
Le cœur de React Native livré en binaires précompilés (XCFrameworks iOS, AAR Android) téléchargés au build, au lieu d’être recompilé depuis les sources.
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.