- 🛠 Fixed incompatibilities with Gradle 6.1 and AGP 4.0
- 👌 Improved error message formatting
🛠 Fixed an issue where promoting a release with R8/Proguard enabled would fail.
This release of GPP requires at least Gradle 6.0.
🐛 Bug Fixes
- 🛠 Fixed an incompatibility with Gradle 6.0
- 🛠 Fixed numerous bugs related to incremental play resource generation and listing publication
- 🔊 Clarified some ambitious logs and warnings
v2.5.0October 30, 2019
🚀 This release transitions GPP into a new publishing model. Previously, every task would create an edit against the Play Store and then commit that edit at the end of the task. In the new model, one build == one commit per app package, meaning one edit will be used across tasks for the same app package. This makes each publishing build an atomic operation: if anything fails, everything is reset and put back into a clean state. See #629 for full details.
Note: Gradle 5.6.1 and AGP 3.5.0 are the new minimum dependency versions.
🚀 GPP v2.4 supports retaining the main and patch OBB files. GPP can also retain releases if, for example, you want to retain your WearOS artifact. See the docs for more details.
🛠 In-app products bug fixes/improvements - #690
- You can now create a completely new product with GPP (previously, it had to first be created in the Play Console)
- Prices are now auto expanded into different currencies so you don't have to explicitly specify them all
- 👍 Bootstrapping more than 100 products is now supported
- 🏗 You can now publish and promote artifacts within the same build - #643
- Listing upload tasks now run in parallel - #628
- 🛠 An incompatibility with bundles in AGP 3.6 was fixed - #633
- 🛠 An incompatibility with Gradle 6.0 was fixed - #688
- 🔀 Cascading play config merge bugs were fixed - #642
--artifact-dirinconsistencies have been fixed: all relative paths now start from the root project directory - #691
- 👌 Support for uploading multiple internal sharing APKs is now available - #691
💅 The theme of this release is polish, polish everywhere. 🌈
Required dependencies - #564
This release of GPP enforces modern tooling. That means you'll need Gradle 5.4 and the Android Gradle Plugin 3.5.0 at a minimum. These dependency requirements were needed in order to use the new APIs that enable GPP v2.3.0's improvements.
🐎 Massive performance improvements - #573
🐎 GPP now uses Gradle's Worker API in all applicable tasks. Depending on how many variants your project has and what you're uploading, you'll see fairly significant performance gains.
🌲 Revamped logging
🏗 On top of error message and task description improvements, GPP now logs the current status of every publishing task being run. This makes validating the correctness of your build much easier. Here's a sample log from running
Click to expand/collapse 🚀 > Task :app:publishReleaseListing Uploading app details Uploading en-US listing Uploading fr-FR listing Committing changes
🚀 > Task :app:publishReleaseBundle Starting App Bundle upload App Bundle upload complete Starting mapping file upload Mapping file upload complete 🚀 Updating [completed] release (com.supercilex.test:) in track 'internal' Committing changes
👌 Support for uploading Internal Sharing artifacts - #576
👍 Google announced support for Internal Sharing artifacts which GPP now supports. Simply run
./gradlew uploadPrivateArtifactand copy the link outputted in the console.
0️⃣ Previously, all CLI options from every task were available to all other tasks. This made things very confusing when, say,
./gradlew publishApk --default-to-app-bundleswas valid. Now, every task has a tailored set of CLI options that are directly applicable to the task in question. As usual, you can find out what a task's CLI options are by running
./gradlew help --task [task]
🚀 Furthermore, the promote task now has an
--update [track]option which is equivalent to
--from-track [track] --track [track]; the
--skip-commitCLI option has been renamed to
--no-commit, following common naming conventions; and a
--release-nameoption was added to change a release's name in the Play Console.
🐛 Bug fixes
- A new line is now added to the end of text files - #566
- The task name has been simplified from
- The old name will be removed in v3.0
playsrc directory is now wiped out to guarantee a clean slate - #575
- Screenshot order from the Play Store is now properly respected - #575
- 🏗 If running the
publishListingtask in the same build, the tasks will now execute in the correct order - #575
- 🛠 App Bundle uploading broke in AGP 3.6 alpha 2—it's now fixed - #581
- Universal APKs are now uploaded again - #595
- The promote task now always selects the highest version code available if no
from-trackis specified instead of picking something non-deterministic from the API response - #571
- 🚚 Local listing validation has been removed in favor of the Publishing API's validation - #601
- 🛠 Fixed tons of incremental processing bugs
Credential validation changes
🚀 Credential validation has been a point of contention for GPP. In this release, we're striving to make it as simple and developer-friendly as possible. The new validation is as follows: any variant that is enabled (this is the default) must specify a
serviceAccountCredentialsor else inherit them from the default
playconfiguration. Any variant that is disabled does not need to specify any credentials.
🔧 These checks will always occur at configuration time when the android variant is added. This strikes a good balance between the flexibility to disable GPP at any time without worrying about credentials, and the guarantees around clear error messages and no silent failures when you're actually trying to publish something.
👀 See #555 for details.
🛠 Other bug fixes
- 🔧 Configuration properties weren't always merged correctly - #555
BuildConfigvalues weren't updated when
outputProcessormade modifications (this still isn't quite fixed, see #553 (comment)) - #554
- App was built even with artifact dir specified - #557
- Mapping files in the artifact dir weren't being uploaded - #558
- 🔀 Various bugs with language merges - #561
🚀 This release addresses feature requests and reported bugs.
🆕 New features
- 👌 Support disabling GPP (docs) - #528
- 👌 Support uploading pre-built artifacts (docs) - #538
- 👌 Support proving Play Console artifact release names (docs) - #539
🐛 Bug fixes
- 🚀 If no release notes were present when promoting a release, they weren't always retrieved from your local machine - #506
outputProcessordidn't run if the artifacts already had valid version codes - #537
- ⏱ Permanently fix timeout issues by making the timeout infinite - #540
- 🔀 Screenshots were incorrectly merged across languages - #541