The Manifest You Never Wrote — A Flutter Developer's Guide to Android Manifest Merging

The Manifest You Never Wrote — A Flutter Developer's Guide to Android Manifest Merging

If you’ve been building Flutter apps for a while, you’ve probably touched your AndroidManifest.xml once during setup, added a permission or two when a plugin asked for it, and moved on. That’s completely normal — Flutter does a great job keeping Android complexity out of your way. But here’s something worth knowing: the manifest you write is never actually the one that ships. By the time your app is packaged into an APK or AAB, Android’s build system has quietly merged your manifest together with the manifest of every plugin in your pubspec.yaml. The result can look very different from what you started with. That merged output — sitting in your build/ folder — is what the Android OS reads, what users grant permissions against, and what Google Play’s policy engine inspects on every upload. A plugin you added for image picking can silently pull in video and audio permissions you never intended to declare, and Play Console will flag them without mercy. This article walks you through how the merge works, how to read the merged output, and how to stay in control of what your app actually ships. Here’s everything we’ll cover: What Is Android Manifest? The Merge Process Under the Hood Where to Find the Merged Manifest READ_MEDIA_* Merge Tools And Markers How Flutter Uses the Merged Manifest at Build Time Why This Matters for Play Store Deployment What Is Android Manifest? Every Android application ships with a file called AndroidManifest.xml. It is the contract between your…

Continue reading →

 

Want more insights? Join Grow With Caliber - our career elevating newsletter and get our take on the future of work delivered weekly.