Fix flutter tool to actually honor --build-number/--build-name flags. (#25520)

This commit is contained in:
Stanislav Baranov 2018-12-18 12:54:26 -08:00 committed by GitHub
parent 0d4f279fb8
commit 693fb6560e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 54 additions and 7 deletions

View file

@ -231,7 +231,11 @@ void updateLocalProperties({
void changeIfNecessary(String key, String value) {
if (settings.values[key] != value) {
settings.values[key] = value;
if (value == null) {
settings.values.remove(key);
} else {
settings.values[key] = value;
}
changed = true;
}
}
@ -240,15 +244,16 @@ void updateLocalProperties({
if (androidSdk != null)
changeIfNecessary('sdk.dir', escapePath(androidSdk.directory));
changeIfNecessary('flutter.sdk', escapePath(Cache.flutterRoot));
if (buildInfo != null)
if (buildInfo != null) {
changeIfNecessary('flutter.buildMode', buildInfo.modeName);
final String buildName = buildInfo?.buildName ?? manifest.buildName;
if (buildName != null)
final String buildName = buildInfo.buildName ?? manifest.buildName;
changeIfNecessary('flutter.versionName', buildName);
final int buildNumber = buildInfo?.buildNumber ?? manifest.buildNumber;
if (buildNumber != null)
changeIfNecessary('flutter.versionCode', '$buildNumber');
final int buildNumber = buildInfo.buildNumber ?? manifest.buildNumber;
changeIfNecessary('flutter.versionCode', buildNumber?.toString());
}
if (changed)
settings.writeContents(localProperties);

View file

@ -325,6 +325,48 @@ flutter:
expectedBuildNumber: '3',
);
});
testUsingAndroidContext('allow build info to unset build name and number', () async {
const String manifest = '''
name: test
dependencies:
flutter:
sdk: flutter
flutter:
''';
await checkBuildVersion(
manifest: manifest,
buildInfo: const BuildInfo(BuildMode.release, null, buildName: null, buildNumber: null),
expectedBuildName: null,
expectedBuildNumber: null,
);
await checkBuildVersion(
manifest: manifest,
buildInfo: const BuildInfo(BuildMode.release, null, buildName: '1.0.2', buildNumber: 3),
expectedBuildName: '1.0.2',
expectedBuildNumber: '3',
);
await checkBuildVersion(
manifest: manifest,
buildInfo: const BuildInfo(BuildMode.release, null, buildName: '1.0.3', buildNumber: 4),
expectedBuildName: '1.0.3',
expectedBuildNumber: '4',
);
// Values don't get unset.
await checkBuildVersion(
manifest: manifest,
buildInfo: null,
expectedBuildName: '1.0.3',
expectedBuildNumber: '4',
);
// Values get unset.
await checkBuildVersion(
manifest: manifest,
buildInfo: const BuildInfo(BuildMode.release, null, buildName: null, buildNumber: null),
expectedBuildName: null,
expectedBuildNumber: null,
);
});
});
}