In a real app
In a project, autolinking shows up in the Podfile (config = use_native_modules!), in android/settings.gradle (the React Native Gradle Plugin), and in android/app/build.gradle (autolinkLibrariesWithApp()). Every library must ship a .podspec at its root and, on Android, a build.gradle; a library missing either is silently skipped. To exclude a library on one platform or point at a local path, react-native.config.js accepts a dependencies entry with platforms.ios: null or root.
The case that burns hours is the monorepo. Autolinking searches the app’s node_modules; a dependency hoisted to the workspace root or installed in isolated mode (pnpm) can escape it. Expo added experiments.autolinkingModuleResolution to app.json in SDK 54, enabled automatically for apps in a monorepo from SDK 55. When a native module “does not exist” at runtime even though the package is installed, I start with npx expo-modules-autolinking search or npx react-native config to see what the build actually sees.
With the experimental Swift Package Manager support (React Native 0.87 and 0.88), iOS autolinking takes a second form: npx react-native spm generates the package references, and a library then has to ship a Package.swift (or generate one with npx react-native spm scaffold), with its SwiftPM settings under swiftpmConfig in its package.json.
Related terms
CocoaPods
React Native’s historical iOS dependency manager (Podfile, pod install, .xcworkspace), in maintenance mode and being replaced by SwiftPM.
Expo Modules API
Expo’s API for writing native modules and views in Swift and Kotlin with one shared DSL, with no Objective-C or bridge boilerplate.
Monorepo
One repository holding several packages linked by the package manager (workspaces); needs care around Metro, autolinking, and dependency hoisting.
Swift Package Manager (SwiftPM)
Swift’s official package manager, built into Xcode, which React Native is adopting to replace CocoaPods (experimental in 0.87 and 0.88).
Prebuild (Continuous Native Generation)
The Expo command that generates the android and ios folders from app.json and config plugins instead of maintaining them by hand.