What is autolinking and how did it change with React Native 0.60+?
Autolinking is the mechanism by which React Native discovers native modules in your node_modules and wires them into the iOS and Android builds without manual configuration.
Before RN 0.60:
After
npm install react-native-xyou ranreact-native link react-native-x.That modified
Podfile,build.gradle,settings.gradle,MainApplication.java, and Xcode pbxproj — manually and brittlely.Worked ~70% of the time; the rest needed manual fixes per platform.
RN 0.60+ (Autolinking):
Each library ships a
react-native.config.jsdeclaring its native modules.At build time, CocoaPods (iOS) and Gradle (Android) discover and link them automatically.
react-native linkis deprecated;pod installhandles iOS; Gradle handles Android.
What autolinking does NOT do:
Add permissions to
Info.plistorAndroidManifest.xml— still manual.Add platform-specific config (URL schemes, custom intents, signing).
Always read each library's README for post-install steps.
The right framing is: 'Before 0.60 you had to manually run react-native link (or edit Xcode/Gradle by hand) for every native dependency. From 0.60 onward, autolinking does it for you at build time.' Mention the small but real trade-off: native modules sometimes need post-install configuration (Info.plist permissions, Android manifest entries) that autolinking does NOT handle — you still have to read each library's README.