If you’ve ever looked inside your pubspec.yaml file in a Flutter project, you’ve probably seen something like this:
version: 1.0.0+1
At first glance, it looks confusing — what’s with the + sign? Let’s break it down step by step 👇
🧱 1️⃣ Part — 1.0.0 (Version Name)
This is your app version name, also called the semantic version.
It follows the standard format:
MAJOR.MINOR.PATCH
Example:
1.0.0 means:
- 1 → Major version (big updates, new features, breaking changes)
- 0 → Minor version (smaller improvements, backward compatible)
- 0 → Patch version (bug fixes, small tweaks)
So, when you change from 1.0.0 → 1.1.0, it usually means new features but not a complete overhaul.
When you go from 1.0.0 → 2.0.0, it’s a major release.
➕ 2️⃣ Part — +1 (Build Number)
The number after the plus sign (+) is called the build number.
This number helps Google Play Store or App Store identify updates — even if your version name looks the same.
Example:
- 1.0.0+1 → First build
- 1.0.0+2 → Second build of the same version
- 1.0.1+3 → Third build, maybe after fixing a small bug
👉 Important: The build number must always increase when you upload a new version to Play Store or App Store, or they’ll reject it.
🧮 Quick Summary
| Part | Example | Meaning |
| 1.0.0 | Version name | Shown to users |
| +1 | Build number | Used by stores (Play Store, App Store) |
🚀 Example Usage
If you’re releasing an update with bug fixes:
version: 1.0.1+2
If you’re releasing a big new version:
version: 2.0.0+10
🧠 Pro Tip
You can automatically increase the build number during CI/CD or release builds using commands like:
flutter build apk –build-name=1.0.2 –build-number=3
💬 Final Words
Think of 1.0.0+1 as:
Version 1.0.0 (what users see)
Build 1 (what stores track)
It’s a simple yet powerful way Flutter helps you manage app versions cleanly and professionally.