Lewati ke konten utama

App Versioning

Semantic Versioning​

Semua app menggunakan Semantic Versioning (SemVer):

MAJOR.MINOR.PATCH
│ │ └── Bug fix, patch (1.2.1 → 1.2.2)
│ └── New feature, backward compatible (1.2.0 → 1.3.0)
└── Breaking change, major redesign (1.x → 2.0.0)

Build Number​

PlatformVersion NameBuild Number
AndroidversionName ("1.2.3")versionCode (auto-increment integer)
iOSCFBundleShortVersionString ("1.2.3")CFBundleVersion (auto-increment)
Flutterversion in pubspec.yaml ("1.2.3+45")+buildNumber
RN Expoversion in app.jsonios.buildNumber / android.versionCode

Auto-increment di CI​

# Build number = CI pipeline ID
VERSION_CODE=$CI_PIPELINE_IID

# Android
sed -i "s/versionCode [0-9]*/versionCode $VERSION_CODE/" app/build.gradle.kts

# iOS (Fastlane)
fastlane run increment_build_number build_number:$VERSION_CODE
peringatan

Build number harus selalu naik untuk setiap upload ke store. Jangan gunakan number yang sama untuk 2 build berbeda.