feat(ui): show build number in About dialog (v1.0.0-rc.8+<build>)
Add package_info_plus 8.3.1 (Flutter Community Plus, BSD-3, ~3M downloads) and resolve the displayed version string from the platform manifest at app init. The string shown in the About dialog is now formatted as 'v<version>+<build>' (e.g. 'v1.0.0-rc.8+60') where both halves come from the SAME pubspec.yaml 'version:' field that Flutter uses to populate iOS's CFBundleShortVersionString + CFBundleVersion and Android's versionName + versionCode. Motivation: during the iOS VoiceProcessingIO audio rollout the user is rebuilding repeatedly from Xcode. Without a build-number suffix there is no way to confirm from inside the app which commit produced the build under test — they all read 'v1.0.0-rc.8'. Every test commit going forward bumps the +<build> field in pubspec.yaml so the About dialog uniquely identifies the build. Implementation: * pubspec.yaml: version 1.0.0-rc.8+59 -> +60 (this commit is a test build). Add package_info_plus: ^8.0.0. * main.dart: _kAppVersion changes from 'const String' to 'String' (resolved at runtime). Populated in main() before runApp() via new _resolveAppVersion() helper that calls PackageInfo.fromPlatform() and formats 'v<info.version>+<info.buildNumber>'. Falls back to the hardcoded 'v1.0.0-rc.8' baseline if the platform call fails (extremely unlikely; the platform channel is a constant lookup). The consumer site at the About dialog (l10n.aboutVersion(_kAppVersion)) is unchanged — the variable still resolves to a String. flutter analyze: clean.
This commit is contained in:
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
# In Windows, build-name is used as the major, minor, and patch parts
|
||||
# of the product and file versions while build-number is used as the build suffix.
|
||||
version: 1.0.0-rc.8+59
|
||||
version: 1.0.0-rc.8+60
|
||||
|
||||
environment:
|
||||
sdk: ^3.11.5
|
||||
@@ -63,6 +63,17 @@ dependencies:
|
||||
# wrong UI: only lists AirPlay output destinations, not the
|
||||
# speaker/receiver/Bluetooth choices we actually want.
|
||||
audio_session: ^0.2.3
|
||||
# package_info_plus 8.x (Flutter Community Plus, BSD-3, ~3M
|
||||
# downloads) exposes the platform-canonical app version + build
|
||||
# number at runtime so the About dialog (and any future
|
||||
# diagnostic export) can display "v1.0.0-rc.8+60" sourced from
|
||||
# the SAME pubspec.yaml field that drives CFBundleShortVersionString
|
||||
# + CFBundleVersion on iOS and versionName + versionCode on
|
||||
# Android. Single source of truth means the version on the
|
||||
# iPhone screen always matches the commit that built it; no
|
||||
# more "am I testing the right build?" question during the
|
||||
# iOS audio test cycle.
|
||||
package_info_plus: ^8.0.0
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Reference in New Issue
Block a user