Versioning
Properly managing your application’s version numbers is essential for tracking releases, communicating updates to users, and satisfying app store submission requirements.
Semantic Versioning
Most applications follow semantic versioning (MAJOR.MINOR.PATCH), where major versions indicate significant changes, minor versions add features, and patch versions fix bugs.
Android Version Configuration
Understanding versionCode vs versionName
versionCode is an internal integer that must always increase with each release, used by the Play Store to determine update eligibility, while versionName is the human-readable version shown to users.
iOS Version Configuration
iOS uses CFBundleShortVersionString for the user-facing version and CFBundleVersion (build number) for internal tracking, both configurable through Xcode’s General settings tab.
Automating Version Bumps
Synchronizing Versions Across Platforms
Tools like react-native-version help keep your package.json version synchronized with both the Android versionName and iOS CFBundleShortVersionString automatically.
Versioning in CI/CD Pipelines
Automated pipelines commonly increment build numbers automatically with each CI run, while version numbers are typically bumped manually or through a release management process.
Conclusion
Consistent, well-managed versioning across Android and iOS is essential for tracking releases accurately and satisfying both Google Play and Apple App Store submission requirements.

