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.