Triple-T / gradle-play-publisher

GPP is Android's unofficial release automation Gradle Plugin. It can do anything from building, uploading, and then promoting your App Bundle or APK to publishing app listings and other metadata.
MIT License
4.09k stars 339 forks source link

Conflict with 'com.google.firebase.appdistribution' plugin #1098

Closed rib closed 10 months ago

rib commented 10 months ago

Describe the bug

We're finding that if we import the firebase app distribution plugin 4.0.0 then we aren't able to upload to the Play Store with this plugin because we hit a HttpTransport.isMtls() error.

(we want our CI system to be able to publish to both Firebase App Delivery and also the Google Play Store)

We can only upload to the Google Play Store if we avoid importing the firebase app distribution plugin in our build.gradle.

How To Reproduce

Versions

\--- com.github.triplet.play:com.github.triplet.play.gradle.plugin:3.8.4
     \--- com.github.triplet.gradle:play-publisher:3.8.4
          +--- com.github.triplet.gradle:android-publisher:3.8.4
          |    +--- com.github.triplet.gradle:common-utils:3.8.4
          +--- com.github.triplet.gradle:common-utils:3.8.4
          +--- com.github.triplet.gradle:common-validation:3.8.4
Gradle 8.0
|    \--- com.android.tools.build:gradle:8.0.1
|    \--- com.android.tools.build:gradle:8.0.1 (*)

Tasks executed

First we add

id 'com.google.firebase.appdistribution' version '4.0.0' apply false

to our top-level build.gradle

and:

id 'com.google.firebase.appdistribution'

to our app build.gradle

then trying to upload to the Google Play Store using:

./gradlew publishReleaseBundle

will fail with:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:publishReleaseBundle'.
> A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishBundle$Processor
   > There was a failure while executing work items
      > A failure occurred while executing com.github.triplet.gradle.play.tasks.PublishBundle$BundleUploader
         > 'boolean com.google.api.client.http.HttpTransport.isMtls()'

Expected behavior

That it should be compatible with the firebase plugin and be able to upload to the google play store.

Additional context (if a crash, provide stack trace)

Output from `./gradlew buildEnv app:buildEnv`

``` > Task :buildEnvironment ------------------------------------------------------------ Root project 'client-android' ------------------------------------------------------------ classpath +--- com.android.application:com.android.application.gradle.plugin:8.0.1 | \--- com.android.tools.build:gradle:8.0.1 | +--- com.android.tools.build:gradle-settings-api:8.0.1 | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 | | | +--- org.jetbrains.kotlin:kotlin-stdlib-common:1.8.0 | | | \--- org.jetbrains:annotations:13.0 | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0 | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 (*) | +--- com.android.tools:sdk-common:31.0.1 | | +--- com.android.tools.analytics-library:shared:31.0.1 | | | +--- com.android.tools.analytics-library:protos:31.0.1 | | | | \--- com.google.protobuf:protobuf-java:3.19.3 | | | +--- com.android.tools:annotations:31.0.1 | | | +--- com.android.tools:common:31.0.1 | | | | +--- com.android.tools:annotations:31.0.1 | | | | +--- com.google.guava:guava:31.0.1-jre | | | | | +--- com.google.guava:failureaccess:1.0.1 | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava | | | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | | | +--- org.checkerframework:checker-qual:3.12.0 | | | | | +--- com.google.errorprone:error_prone_annotations:2.7.1 -> 2.10.0 | | | | | \--- com.google.j2objc:j2objc-annotations:1.3 | | | | +--- net.java.dev.jna:jna-platform:5.6.0 | | | | | \--- net.java.dev.jna:jna:5.6.0 | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | | +--- com.google.code.gson:gson:2.8.9 | | | +--- com.google.guava:guava:31.0.1-jre (*) | | | +--- net.java.dev.jna:jna-platform:5.6.0 (*) | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | +--- com.android.tools.build:aapt2-proto:8.0.1-9289358 | | | \--- com.google.protobuf:protobuf-java:3.19.3 | | +--- com.android.tools:common:31.0.1 (*) | | +--- com.android.tools.ddms:ddmlib:31.0.1 | | | +--- com.android.tools:common:31.0.1 (*) | | | +--- com.google.protobuf:protobuf-java:3.19.3 | | | +--- net.sf.kxml:kxml2:2.3.0 | | | \--- org.jetbrains:annotations:13.0 | | +--- com.android.tools.layoutlib:layoutlib-api:31.0.1 | | | +--- com.android.tools:annotations:31.0.1 | | | +--- com.android.tools:common:31.0.1 (*) | | | +--- net.sf.kxml:kxml2:2.3.0 | | | \--- org.jetbrains:annotations:13.0 | | +--- com.android.tools:sdklib:31.0.1 | | | +--- com.android.tools:repository:31.0.1 | | | | +--- com.android.tools.analytics-library:shared:31.0.1 (*) | | | | +--- com.android.tools:common:31.0.1 (*) | | | | +--- com.google.jimfs:jimfs:1.1 | | | | | \--- com.google.guava:guava:18.0 -> 31.0.1-jre (*) | | | | +--- com.sun.activation:javax.activation:1.2.0 | | | | +--- org.apache.commons:commons-compress:1.20 | | | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 | | | | | +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.2 | | | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1 | | | | | +--- org.glassfish.jaxb:txw2:2.3.2 | | | | | +--- com.sun.istack:istack-commons-runtime:3.0.8 | | | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1 | | | | | +--- org.jvnet.staxex:stax-ex:1.8.1 | | | | | | +--- jakarta.activation:jakarta.activation-api:1.2.1 | | | | | | \--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.2 (*) | | | | | +--- com.sun.xml.fastinfoset:FastInfoset:1.2.16 | | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1 | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | | +--- com.android.tools:common:31.0.1 (*) | | | +--- com.android.tools:dvlib:31.0.1 | | | | \--- com.android.tools:common:31.0.1 (*) | | | +--- com.android.tools.layoutlib:layoutlib-api:31.0.1 (*) | | | +--- com.google.code.gson:gson:2.8.9 | | | +--- org.apache.commons:commons-compress:1.20 | | | +--- org.apache.httpcomponents:httpcore:4.4.15 | | | +--- org.apache.httpcomponents:httpmime:4.5.6 | | | | \--- org.apache.httpcomponents:httpclient:4.5.6 -> 4.5.13 | | | | +--- org.apache.httpcomponents:httpcore:4.4.13 -> 4.4.15 | | | | +--- commons-logging:commons-logging:1.2 | | | | \--- commons-codec:commons-codec:1.11 | | | \--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*) | | +--- com.google.code.gson:gson:2.8.9 | | +--- com.google.guava:guava:31.0.1-jre (*) | | +--- com.google.protobuf:protobuf-java:3.19.3 | | +--- javax.inject:javax.inject:1 | | +--- net.sf.kxml:kxml2:2.3.0 | | +--- org.bouncycastle:bcpkix-jdk15on:1.67 | | | \--- org.bouncycastle:bcprov-jdk15on:1.67 | | +--- org.bouncycastle:bcprov-jdk15on:1.67 | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*) | | +--- org.jetbrains.intellij.deps:trove4j:1.0.20200330 | | +--- org.jetbrains.kotlin:kotlin-reflect:1.7.10 -> 1.8.0 | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | \--- xerces:xercesImpl:2.12.0 | | \--- xml-apis:xml-apis:1.4.01 | +--- com.android.tools:sdklib:31.0.1 (*) | +--- com.android.tools:repository:31.0.1 (*) | +--- com.android.tools.ddms:ddmlib:31.0.1 (*) | +--- com.android.tools.build:aapt2-proto:8.0.1-9289358 (*) | +--- com.android.tools.build:aaptcompiler:8.0.1 | | +--- com.android.tools.build:aapt2-proto:8.0.1-9289358 (*) | | +--- com.android.tools.layoutlib:layoutlib-api:31.0.1 (*) | | +--- com.android.tools:common:31.0.1 (*) | | +--- com.google.protobuf:protobuf-java:3.19.3 | | +--- com.google.guava:guava:31.0.1-jre (*) | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | +--- com.android.tools.analytics-library:crash:31.0.1 | | +--- com.android.tools:annotations:31.0.1 | | +--- com.google.guava:guava:31.0.1-jre (*) | | +--- org.apache.httpcomponents:httpclient:4.5.13 (*) | | +--- org.apache.httpcomponents:httpcore:4.4.15 | | \--- org.apache.httpcomponents:httpmime:4.5.6 (*) | +--- com.android.tools.analytics-library:shared:31.0.1 (*) | +--- com.android.tools.lint:lint-model:31.0.1 | | +--- com.android.tools.build:builder-model:8.0.1 | | | +--- com.android.tools:annotations:31.0.1 | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | +--- com.android.tools:common:31.0.1 (*) | | +--- com.android.tools:sdk-common:31.0.1 (*) | | +--- net.sf.kxml:kxml2:2.3.0 | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | +--- com.android.tools.lint:lint-typedef-remover:31.0.1 | | +--- com.android.tools:annotations:31.0.1 | | +--- com.google.guava:guava:31.0.1-jre (*) | | \--- org.ow2.asm:asm:9.2 | +--- androidx.databinding:databinding-compiler-common:8.0.1 | | +--- androidx.databinding:databinding-common:8.0.1 | | +--- com.android.databinding:baseLibrary:8.0.1 | | +--- com.android.tools:annotations:31.0.1 | | +--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10 | | | +--- com.google.code.gson:gson:2.8.0 -> 2.8.9 | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 1.8.0 (*) | | +--- com.google.code.gson:gson:2.8.9 | | +--- com.google.guava:guava:31.0.1-jre (*) | | +--- com.googlecode.juniversalchardet:juniversalchardet:1.0.3 | | +--- com.squareup:javapoet:1.10.0 | | +--- commons-io:commons-io:2.4 -> 2.11.0 | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*) | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | +--- androidx.databinding:databinding-common:8.0.1 | +--- com.android.databinding:baseLibrary:8.0.1 | +--- com.android.tools.build:builder-test-api:8.0.1 | | +--- com.android.tools.ddms:ddmlib:31.0.1 (*) | | +--- com.android.tools:annotations:31.0.1 | | +--- com.android.tools:common:31.0.1 (*) | | \--- com.google.guava:guava:31.0.1-jre (*) | +--- com.android.tools.layoutlib:layoutlib-api:31.0.1 (*) | +--- com.android.tools.utp:android-device-provider-ddmlib-proto:31.0.1 | | \--- com.google.protobuf:protobuf-java:3.19.3 | +--- com.android.tools.utp:android-device-provider-gradle-proto:31.0.1 | | \--- com.google.protobuf:protobuf-java:3.19.3 | +--- com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:31.0.1 | | \--- com.google.protobuf:protobuf-java:3.19.3 | +--- com.android.tools.utp:android-test-plugin-host-coverage-proto:31.0.1 | | \--- com.google.protobuf:protobuf-java:3.19.3 | +--- com.android.tools.utp:android-test-plugin-host-logcat-proto:31.0.1 | | \--- com.google.protobuf:protobuf-java:3.19.3 | +--- com.android.tools.utp:android-test-plugin-host-retention-proto:31.0.1 | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | \--- com.google.protobuf:protobuf-java:3.19.3 | +--- com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:31.0.1 | | +--- io.grpc:grpc-core:1.45.1 | | | +--- io.grpc:grpc-api:1.45.1 | | | | +--- io.grpc:grpc-context:1.45.1 | | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | | +--- com.google.errorprone:error_prone_annotations:2.10.0 | | | | \--- com.google.guava:guava:31.0.1-android -> 31.0.1-jre (*) | | | +--- com.google.code.gson:gson:2.8.9 | | | +--- com.google.android:annotations:4.1.1.4 | | | +--- org.codehaus.mojo:animal-sniffer-annotations:1.19 | | | +--- com.google.errorprone:error_prone_annotations:2.10.0 | | | +--- com.google.guava:guava:31.0.1-android -> 31.0.1-jre (*) | | | \--- io.perfmark:perfmark-api:0.23.0 | | +--- io.grpc:grpc-netty:1.45.1 | | | +--- io.grpc:grpc-core:1.45.1 (*) | | | +--- io.netty:netty-codec-http2:4.1.72.Final | | | | +--- io.netty:netty-common:4.1.72.Final | | | | +--- io.netty:netty-buffer:4.1.72.Final | | | | | \--- io.netty:netty-common:4.1.72.Final | | | | +--- io.netty:netty-transport:4.1.72.Final | | | | | +--- io.netty:netty-common:4.1.72.Final | | | | | +--- io.netty:netty-buffer:4.1.72.Final (*) | | | | | \--- io.netty:netty-resolver:4.1.72.Final | | | | | \--- io.netty:netty-common:4.1.72.Final | | | | +--- io.netty:netty-codec:4.1.72.Final | | | | | +--- io.netty:netty-common:4.1.72.Final | | | | | +--- io.netty:netty-buffer:4.1.72.Final (*) | | | | | \--- io.netty:netty-transport:4.1.72.Final (*) | | | | +--- io.netty:netty-handler:4.1.72.Final | | | | | +--- io.netty:netty-common:4.1.72.Final | | | | | +--- io.netty:netty-resolver:4.1.72.Final (*) | | | | | +--- io.netty:netty-buffer:4.1.72.Final (*) | | | | | +--- io.netty:netty-transport:4.1.72.Final (*) | | | | | +--- io.netty:netty-codec:4.1.72.Final (*) | | | | | \--- io.netty:netty-tcnative-classes:2.0.46.Final | | | | \--- io.netty:netty-codec-http:4.1.72.Final | | | | +--- io.netty:netty-common:4.1.72.Final | | | | +--- io.netty:netty-buffer:4.1.72.Final (*) | | | | +--- io.netty:netty-transport:4.1.72.Final (*) | | | | +--- io.netty:netty-codec:4.1.72.Final (*) | | | | \--- io.netty:netty-handler:4.1.72.Final (*) | | | +--- io.netty:netty-handler-proxy:4.1.72.Final | | | | +--- io.netty:netty-common:4.1.72.Final | | | | +--- io.netty:netty-buffer:4.1.72.Final (*) | | | | +--- io.netty:netty-transport:4.1.72.Final (*) | | | | +--- io.netty:netty-codec:4.1.72.Final (*) | | | | +--- io.netty:netty-codec-socks:4.1.72.Final | | | | | +--- io.netty:netty-common:4.1.72.Final | | | | | +--- io.netty:netty-buffer:4.1.72.Final (*) | | | | | +--- io.netty:netty-transport:4.1.72.Final (*) | | | | | \--- io.netty:netty-codec:4.1.72.Final (*) | | | | \--- io.netty:netty-codec-http:4.1.72.Final (*) | | | +--- com.google.guava:guava:31.0.1-android -> 31.0.1-jre (*) | | | +--- com.google.errorprone:error_prone_annotations:2.10.0 | | | \--- io.perfmark:perfmark-api:0.23.0 | | +--- io.grpc:grpc-protobuf:1.45.1 | | | +--- io.grpc:grpc-api:1.45.1 (*) | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | +--- com.google.protobuf:protobuf-java:3.19.2 -> 3.19.3 | | | +--- com.google.api.grpc:proto-google-common-protos:2.0.1 | | | | \--- com.google.protobuf:protobuf-java:3.13.0 -> 3.19.3 | | | +--- io.grpc:grpc-protobuf-lite:1.45.1 | | | | +--- io.grpc:grpc-api:1.45.1 (*) | | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | | \--- com.google.guava:guava:31.0.1-android -> 31.0.1-jre (*) | | | \--- com.google.guava:guava:31.0.1-android -> 31.0.1-jre (*) | | +--- io.grpc:grpc-stub:1.45.1 | | | +--- io.grpc:grpc-api:1.45.1 (*) | | | +--- com.google.guava:guava:31.0.1-android -> 31.0.1-jre (*) | | | \--- com.google.errorprone:error_prone_annotations:2.10.0 | | +--- com.google.code.gson:gson:2.8.9 | | +--- com.google.guava:guava:31.0.1-jre (*) | | +--- javax.annotation:javax.annotation-api:1.3.2 | | \--- com.google.protobuf:protobuf-java:3.19.3 | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | +--- com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api | +--- org.apache.httpcomponents:httpmime:4.5.6 (*) | +--- commons-io:commons-io:2.4 -> 2.11.0 | +--- org.ow2.asm:asm:9.2 | +--- org.ow2.asm:asm-analysis:9.2 | | \--- org.ow2.asm:asm-tree:9.2 | | \--- org.ow2.asm:asm:9.2 | +--- org.ow2.asm:asm-commons:9.2 | | +--- org.ow2.asm:asm:9.2 | | +--- org.ow2.asm:asm-tree:9.2 (*) | | \--- org.ow2.asm:asm-analysis:9.2 (*) | +--- org.ow2.asm:asm-util:9.2 | | +--- org.ow2.asm:asm:9.2 | | +--- org.ow2.asm:asm-tree:9.2 (*) | | \--- org.ow2.asm:asm-analysis:9.2 (*) | +--- org.bouncycastle:bcpkix-jdk15on:1.67 (*) | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*) | +--- net.sf.jopt-simple:jopt-simple:4.9 | +--- com.android.tools.build:bundletool:1.13.2 | | +--- com.android.tools.build:aapt2-proto:7.3.0-alpha07-8248216 -> 8.0.1-9289358 (*) | | +--- com.google.auto.value:auto-value-annotations:1.6.2 | | +--- com.google.errorprone:error_prone_annotations:2.3.1 -> 2.10.0 | | +--- com.google.guava:guava:31.0.1-jre (*) | | +--- com.google.protobuf:protobuf-java:3.19.2 -> 3.19.3 | | +--- com.google.protobuf:protobuf-java-util:3.19.2 -> 3.19.3 | | | +--- com.google.protobuf:protobuf-java:3.19.3 | | | +--- com.google.guava:guava:30.1.1-android -> 31.0.1-jre (*) | | | +--- com.google.errorprone:error_prone_annotations:2.5.1 -> 2.10.0 | | | +--- com.google.j2objc:j2objc-annotations:1.3 | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | \--- com.google.code.gson:gson:2.8.6 -> 2.8.9 | | +--- com.google.dagger:dagger:2.28.3 | | | \--- javax.inject:javax.inject:1 | | +--- javax.inject:javax.inject:1 | | +--- org.bitbucket.b_c:jose4j:0.7.0 | | \--- org.slf4j:slf4j-api:1.7.30 | +--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10 (*) | +--- com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10 | | +--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10 (*) | | +--- org.ow2.asm:asm:8.0.1 -> 9.2 | | +--- org.ow2.asm:asm-util:8.0.1 -> 9.2 (*) | | +--- org.ow2.asm:asm-commons:8.0.1 -> 9.2 (*) | | +--- org.jdom:jdom2:2.0.6 | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.71 -> 1.8.0 (*) | +--- com.squareup:javapoet:1.10.0 | +--- com.google.protobuf:protobuf-java:3.19.3 | +--- com.google.protobuf:protobuf-java-util:3.19.3 (*) | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9 | +--- io.grpc:grpc-core:1.45.1 (*) | +--- io.grpc:grpc-netty:1.45.1 (*) | +--- io.grpc:grpc-protobuf:1.45.1 (*) | +--- io.grpc:grpc-stub:1.45.1 (*) | +--- com.google.crypto.tink:tink:1.7.0 | | +--- com.google.protobuf:protobuf-java:3.19.3 | | \--- com.google.code.gson:gson:2.8.9 | +--- com.google.testing.platform:core-proto:0.0.8-alpha08 | +--- com.google.flatbuffers:flatbuffers-java:1.12.0 | +--- org.tensorflow:tensorflow-lite-metadata:0.1.0-rc2 | | +--- org.checkerframework:checker-qual:2.5.8 -> 3.12.0 | | \--- com.google.flatbuffers:flatbuffers-java:1.12.0 | +--- com.android.tools.build:builder:8.0.1 | | +--- com.android.tools.build:builder-model:8.0.1 (*) | | +--- com.android.tools.build:builder-test-api:8.0.1 (*) | | +--- com.android.tools:sdklib:31.0.1 (*) | | +--- com.android.tools:sdk-common:31.0.1 (*) | | +--- com.android.tools:common:31.0.1 (*) | | +--- com.android.tools.ddms:ddmlib:31.0.1 (*) | | +--- com.android:signflinger:8.0.1 | | | +--- com.android.tools:annotations:31.0.1 | | | +--- com.android.tools.build:apksig:8.0.1 | | | \--- com.android:zipflinger:8.0.1 | | | \--- com.android.tools:annotations:31.0.1 | | +--- com.android.tools.analytics-library:protos:31.0.1 (*) | | +--- com.android.tools.analytics-library:tracker:31.0.1 | | | +--- com.android.tools.analytics-library:protos:31.0.1 (*) | | | +--- com.android.tools.analytics-library:shared:31.0.1 (*) | | | +--- com.android.tools:annotations:31.0.1 | | | +--- com.android.tools:common:31.0.1 (*) | | | +--- com.google.guava:guava:31.0.1-jre (*) | | | +--- com.google.protobuf:protobuf-java:3.19.3 | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | +--- com.android.tools.layoutlib:layoutlib-api:31.0.1 (*) | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | +--- org.bouncycastle:bcpkix-jdk15on:1.67 (*) | | +--- commons-codec:commons-codec:1.10 -> 1.11 | | +--- org.bouncycastle:bcprov-jdk15on:1.67 | | +--- javax.inject:javax.inject:1 | | +--- org.ow2.asm:asm-commons:9.2 (*) | | +--- com.android.tools.build:manifest-merger:31.0.1 | | | +--- com.android.tools:common:31.0.1 (*) | | | +--- com.android.tools:sdklib:31.0.1 (*) | | | +--- com.android.tools:sdk-common:31.0.1 (*) | | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9 | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | | | \--- net.sf.kxml:kxml2:2.3.0 | | +--- com.android:zipflinger:8.0.1 (*) | | +--- com.android.tools.build:apksig:8.0.1 | | +--- com.android.tools.build:apkzlib:8.0.1 | | | +--- com.android.tools.build:apksig:8.0.1 | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | +--- com.google.guava:guava:31.0.1-jre (*) | | | +--- org.bouncycastle:bcpkix-jdk15on:1.67 (*) | | | \--- org.bouncycastle:bcprov-jdk15on:1.67 | | \--- com.squareup:javawriter:2.5.0 | +--- com.android.tools.build:builder-model:8.0.1 (*) | \--- com.android.tools.build:gradle-api:8.0.1 | +--- com.android.tools.build:builder-test-api:8.0.1 (*) | +--- com.google.guava:guava:31.0.1-jre (*) | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.0 (*) | \--- org.ow2.asm:asm:9.2 +--- com.android.library:com.android.library.gradle.plugin:8.0.1 | \--- com.android.tools.build:gradle:8.0.1 (*) \--- com.google.firebase.appdistribution:com.google.firebase.appdistribution.gradle.plugin:4.0.0 \--- com.google.firebase:firebase-appdistribution-gradle:4.0.0 +--- com.google.guava:guava:29.0-jre -> 31.0.1-jre (*) +--- com.google.api-client:google-api-client:1.30.9 | +--- com.google.oauth-client:google-oauth-client:1.30.5 -> 1.31.0 | | +--- com.google.http-client:google-http-client:1.35.0 | | | +--- org.apache.httpcomponents:httpclient:4.5.12 -> 4.5.13 (*) | | | +--- org.apache.httpcomponents:httpcore:4.4.13 -> 4.4.15 | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | +--- com.google.guava:guava:29.0-android -> 31.0.1-jre (*) | | | +--- com.google.j2objc:j2objc-annotations:1.3 | | | +--- io.opencensus:opencensus-api:0.24.0 | | | | \--- io.grpc:grpc-context:1.22.1 -> 1.45.1 | | | \--- io.opencensus:opencensus-contrib-http-util:0.24.0 | | | +--- io.opencensus:opencensus-api:0.24.0 (*) | | | \--- com.google.guava:guava:26.0-android -> 31.0.1-jre (*) | | +--- com.google.code.findbugs:jsr305:3.0.2 | | \--- com.google.guava:guava:29.0-android -> 31.0.1-jre (*) | +--- com.google.http-client:google-http-client-jackson2:1.34.2 | | +--- com.google.http-client:google-http-client:1.34.2 -> 1.35.0 (*) | | \--- com.fasterxml.jackson.core:jackson-core:2.10.2 | \--- com.google.guava:guava:28.2-android -> 31.0.1-jre (*) +--- commons-io:commons-io:2.11.0 +--- commons-cli:commons-cli:1.4 +--- com.google.code.gson:gson:2.8.6 -> 2.8.9 +--- com.google.oauth-client:google-oauth-client:1.31.0 (*) +--- com.google.oauth-client:google-oauth-client-java6:1.31.0 | \--- com.google.oauth-client:google-oauth-client:1.31.0 (*) +--- com.google.oauth-client:google-oauth-client-jetty:1.31.0 | \--- com.google.oauth-client:google-oauth-client-java6:1.31.0 (*) +--- com.google.http-client:google-http-client-jackson2:1.34.2 (*) +--- org.jetbrains.kotlin:kotlin-reflect:1.8.0 (*) \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0 (*) (*) - Indicates repeated occurrences of a transitive dependency subtree. Gradle expands transitive dependency subtrees only once per project; repeat occurrences only display the root of the subtree, followed by this annotation. A web-based, searchable dependency report is available by adding the --scan option. > Task :app:buildEnvironment ------------------------------------------------------------ Project ':app' ------------------------------------------------------------ classpath \--- com.github.triplet.play:com.github.triplet.play.gradle.plugin:3.8.4 \--- com.github.triplet.gradle:play-publisher:3.8.4 +--- com.github.triplet.gradle:android-publisher:3.8.4 | +--- com.github.triplet.gradle:common-utils:3.8.4 | +--- com.google.apis:google-api-services-androidpublisher:v3-rev20230615-2.0.0 | | \--- com.google.api-client:google-api-client:2.2.0 | | +--- commons-codec:commons-codec:1.15 | | +--- com.google.oauth-client:google-oauth-client:1.34.1 | | | +--- com.google.http-client:google-http-client:1.42.0 -> 1.42.3 | | | | +--- org.apache.httpcomponents:httpclient:4.5.13 -> 4.5.14 | | | | | +--- org.apache.httpcomponents:httpcore:4.4.16 | | | | | +--- commons-logging:commons-logging:1.2 | | | | | \--- commons-codec:commons-codec:1.11 -> 1.15 | | | | +--- org.apache.httpcomponents:httpcore:4.4.15 -> 4.4.16 | | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | | +--- com.google.errorprone:error_prone_annotations:2.16 | | | | +--- com.google.guava:guava:30.1.1-android -> 31.1-jre | | | | | +--- com.google.guava:failureaccess:1.0.1 | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava | | | | | +--- com.google.code.findbugs:jsr305:3.0.2 | | | | | +--- org.checkerframework:checker-qual:3.12.0 | | | | | +--- com.google.errorprone:error_prone_annotations:2.11.0 -> 2.16 | | | | | \--- com.google.j2objc:j2objc-annotations:1.3 | | | | +--- com.google.j2objc:j2objc-annotations:1.3 | | | | +--- io.opencensus:opencensus-api:0.31.1 | | | | | \--- io.grpc:grpc-context:1.27.2 | | | | \--- io.opencensus:opencensus-contrib-http-util:0.31.1 | | | | +--- io.opencensus:opencensus-api:0.31.1 (*) | | | | \--- com.google.guava:guava:29.0-android -> 31.1-jre (*) | | | +--- com.google.http-client:google-http-client-gson:1.42.0 -> 1.42.3 | | | | +--- com.google.http-client:google-http-client:1.42.3 (*) | | | | \--- com.google.code.gson:gson:2.10 | | | \--- com.google.guava:guava:31.1-android -> 31.1-jre (*) | | +--- com.google.http-client:google-http-client-gson:1.42.3 (*) | | +--- com.google.guava:guava:31.1-jre (*) | | +--- com.google.http-client:google-http-client-apache-v2:1.42.3 | | | +--- com.google.http-client:google-http-client:1.42.3 (*) | | | +--- org.apache.httpcomponents:httpclient:4.5.13 -> 4.5.14 (*) | | | \--- org.apache.httpcomponents:httpcore:4.4.15 -> 4.4.16 | | +--- org.apache.httpcomponents:httpcore:4.4.16 | | +--- org.apache.httpcomponents:httpclient:4.5.14 (*) | | \--- com.google.http-client:google-http-client:1.42.3 (*) | +--- com.google.api-client:google-api-client:2.2.0 (*) | +--- com.google.auth:google-auth-library-oauth2-http:1.2.2 | | +--- com.google.auto.value:auto-value-annotations:1.8.2 | | +--- com.google.code.findbugs:jsr305:3.0.2 | | +--- com.google.auth:google-auth-library-credentials:1.2.2 | | +--- com.google.http-client:google-http-client:1.40.1 -> 1.42.3 (*) | | +--- com.google.http-client:google-http-client-gson:1.40.1 -> 1.42.3 (*) | | \--- com.google.guava:guava:31.0.1-android -> 31.1-jre (*) | \--- com.google.http-client:google-http-client-apache-v2:1.40.1 -> 1.42.3 (*) +--- com.github.triplet.gradle:common-utils:3.8.4 +--- com.github.triplet.gradle:common-validation:3.8.4 +--- com.google.guava:guava:31.0.1-jre -> 31.1-jre (*) \--- com.google.http-client:google-http-client-gson:1.40.1 -> 1.42.3 (*) (*) - Indicates repeated occurrences of a transitive dependency subtree. Gradle expands transitive dependency subtrees only once per project; repeat occurrences only display the root of the subtree, followed by this annotation. A web-based, searchable dependency report is available by adding the --scan option. BUILD SUCCESSFUL in 1s 2 actionable tasks: 2 executed ```

rib commented 10 months ago

Ah, based on the comment here: https://github.com/Triple-T/gradle-play-publisher/issues/901#issuecomment-758311851

I tried declaring the version of the triplet.play plugin in the top-level build.gradle with apply false and don't specify the version in the app build.gradle.

So it looks like this in the top build.gradle:

plugins {
    id 'com.android.application' version '8.0.1' apply false
    id 'com.android.library' version '8.0.1' apply false
    id 'com.github.triplet.play' version "3.8.4" apply false
    id 'com.google.firebase.appdistribution' version '4.0.0' apply false
}

and this for the app:

plugins {
    id 'com.android.application'
    id 'com.github.triplet.play'
    id 'com.google.firebase.appdistribution'
}

and that seems to avoid the version conflict