mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Flutter Gradle Plugin: add versionName and versionCode to FlutterExtension (#146044)
This PR is a follow-up of a previous PR of mine: https://github.com/flutter/flutter/pull/141417. It was unfinished, i.e. I only implemented it and used it in `examples/hello_world`. No "flutter create" templates were modified. This change is theoretically breaking, but in practice, I am pretty sure nobody uses this. It was not accounced anywhere, the only app using it is `examples/hello_world`. I did not do that (that=update docs and templates) because I wanted a solution that is idiomatic in both Gradle and Kotlin, and only now I found time to do this. ### Without this change ```groovy defaultConfig { applicationId = "io.flutter.examples.hello_world" minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode() versionName = flutter.versionName() } ``` ### With this change ```groovy defaultConfig { applicationId = "io.flutter.examples.hello_world" minSdk = flutter.minSdkVersion targetSdk = flutter.targetSdkVersion versionCode = flutter.versionCode versionName = flutter.versionName } ``` Idiomatic getter - yay! It's consistent between assignment of all four props. ### Issue fixes https://github.com/flutter/flutter/issues/146067 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: Reid Baker <reidbaker@google.com>
This commit is contained in:
parent
888cf95cfe
commit
ec82f0d895
@ -7,24 +7,6 @@ plugins {
|
|||||||
id "dev.flutter.flutter-gradle-plugin"
|
id "dev.flutter.flutter-gradle-plugin"
|
||||||
}
|
}
|
||||||
|
|
||||||
def localProperties = new Properties()
|
|
||||||
def localPropertiesFile = rootProject.file('local.properties')
|
|
||||||
if (localPropertiesFile.exists()) {
|
|
||||||
localPropertiesFile.withReader('UTF-8') { reader ->
|
|
||||||
localProperties.load(reader)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
|
|
||||||
if (flutterVersionCode == null) {
|
|
||||||
flutterVersionCode = '1'
|
|
||||||
}
|
|
||||||
|
|
||||||
def flutterVersionName = localProperties.getProperty('flutter.versionName')
|
|
||||||
if (flutterVersionName == null) {
|
|
||||||
flutterVersionName = '1.0'
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace "com.example.view"
|
namespace "com.example.view"
|
||||||
compileSdk flutter.compileSdkVersion
|
compileSdk flutter.compileSdkVersion
|
||||||
@ -38,8 +20,8 @@ android {
|
|||||||
applicationId "io.flutter.examples.flutter_view"
|
applicationId "io.flutter.examples.flutter_view"
|
||||||
minSdkVersion flutter.minSdkVersion
|
minSdkVersion flutter.minSdkVersion
|
||||||
targetSdkVersion flutter.targetSdkVersion
|
targetSdkVersion flutter.targetSdkVersion
|
||||||
versionCode flutterVersionCode.toInteger()
|
versionCode flutter.versionCode
|
||||||
versionName flutterVersionName
|
versionName flutter.versionName
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
@ -20,8 +20,8 @@ android {
|
|||||||
applicationId = "io.flutter.examples.hello_world"
|
applicationId = "io.flutter.examples.hello_world"
|
||||||
minSdk = flutter.minSdkVersion
|
minSdk = flutter.minSdkVersion
|
||||||
targetSdk = flutter.targetSdkVersion
|
targetSdk = flutter.targetSdkVersion
|
||||||
versionCode = flutter.versionCode()
|
versionCode = flutter.versionCode
|
||||||
versionName = flutter.versionName()
|
versionName = flutter.versionName
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
@ -20,8 +20,8 @@ android {
|
|||||||
applicationId "io.flutter.examples.layers"
|
applicationId "io.flutter.examples.layers"
|
||||||
minSdkVersion flutter.minSdkVersion
|
minSdkVersion flutter.minSdkVersion
|
||||||
targetSdkVersion flutter.targetSdkVersion
|
targetSdkVersion flutter.targetSdkVersion
|
||||||
versionCode flutter.versionCode()
|
versionCode flutter.versionCode
|
||||||
versionName flutter.versionName()
|
versionName flutter.versionName
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
|
@ -78,7 +78,7 @@ class FlutterExtension {
|
|||||||
public String flutterVersionName = null
|
public String flutterVersionName = null
|
||||||
|
|
||||||
/** Returns flutterVersionCode as an integer with error handling. */
|
/** Returns flutterVersionCode as an integer with error handling. */
|
||||||
public Integer versionCode() {
|
public Integer getVersionCode() {
|
||||||
if (flutterVersionCode == null) {
|
if (flutterVersionCode == null) {
|
||||||
throw new GradleException("flutterVersionCode must not be null.")
|
throw new GradleException("flutterVersionCode must not be null.")
|
||||||
}
|
}
|
||||||
@ -91,7 +91,7 @@ class FlutterExtension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Returns flutterVersionName with error handling. */
|
/** Returns flutterVersionName with error handling. */
|
||||||
public String versionName() {
|
public String getVersionName() {
|
||||||
if (flutterVersionName == null) {
|
if (flutterVersionName == null) {
|
||||||
throw new GradleException("flutterVersionName must not be null.")
|
throw new GradleException("flutterVersionName must not be null.")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user