Continuous Native Generation
Also called CNG, Prebuild, Config plugin
- Part of
- React Native Glossary
- Also known as
- CNG, Prebuild, Config plugin
- Mentioned in
- Expo
- Updated
What is Continuous Native Generation in React Native?
Continuous Native Generation (CNG) regenerates the ios and android folders from app config and config plugins, so native projects are build artefacts rather than hand-edited source.
Continuous Native Generation is the practice of treating the ios/ and android/ directories as generated output rather than source you maintain. Running npx expo prebuild recreates them from app.json plus a set of config plugins.
Without CNG, adding a library that needs a permission means editing Info.plist and AndroidManifest.xml by hand — and then resolving conflicts in those files on every React Native upgrade. With CNG you declare the intent once:
{
"plugins": [["expo-camera", { "cameraPermission": "Scan receipts" }]]
}
A config plugin is the function that applies one library's native changes during prebuild. Most Expo SDK packages ship one; community libraries increasingly do too.
The payoff is upgrades. Because the native folders are regenerated, bumping React Native does not mean merging someone else's changes into your Podfile.
You can still drop out and manage native folders manually — the "bare" approach — but you lose that upgrade property. See prebuild.