You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Before AGP 9, the app build renamed APKs and AABs inside AGP's output directories through applicationVariants, BaseVariantOutputImpl.outputFileName, and FinalizeBundleTask. AGP 9 removes those legacy and internal APIs.
#1127 replaces them with the supported SingleArtifact.APK, SingleArtifact.BUNDLE, and BuiltArtifactsLoader APIs. The resulting artifact-listener tasks run whenever Gradle produces the corresponding app artifact, including direct assemble* and bundle* commands.
Producer contract
Every assemble<Variant> invocation automatically publishes the established versioned bitkit-*.apk copies under app/build/outputs/bitkit/<variant>.
Every bundle<Variant> invocation automatically publishes the established versioned bitkit-*.aab copy under app/build/outputs/bitkit/<variant>.
The artifact-listener wiring is the build trigger for these compatibility outputs across direct Gradle commands, Android Studio builds, just commands, and CI.
Each compatibility directory contains only the current APK or AAB set for its variant.
AGP's native app-* artifacts and metadata remain owned by AGP under app/build/outputs/apk and app/build/outputs/bundle.
Consumer delivery
Update the two public consumers before #1127 merges. Track both changes through this issue; separate planning issues in the consumer repositories are not required.
Resolve exactly one universal APK from app/build/outputs/bitkit/devDebug or app/build/outputs/bitkit/mainnetDebug after the existing assemble* command.
Continue writing aut/bitkit_e2e.apk for local and regtest runs.
Continue writing aut/bitkit_e2e_mainnet.apk for mainnet runs.
Resolve exactly one universal APK from app/build/outputs/bitkit/mainnetDebug after assembleMainnetDebug.
Continue writing and uploading probe-apk/bitkit_e2e.apk.
During the merge transition, each consumer resolves the compatibility directory first and the legacy AGP output directory second. This keeps the same consumer revision working against Android refs from both sides of #1127.
Why this is required
Before AGP 9, the app build renamed APKs and AABs inside AGP's output directories through
applicationVariants,BaseVariantOutputImpl.outputFileName, andFinalizeBundleTask. AGP 9 removes those legacy and internal APIs.#1127 replaces them with the supported
SingleArtifact.APK,SingleArtifact.BUNDLE, andBuiltArtifactsLoaderAPIs. The resulting artifact-listener tasks run whenever Gradle produces the corresponding app artifact, including directassemble*andbundle*commands.Producer contract
assemble<Variant>invocation automatically publishes the established versionedbitkit-*.apkcopies underapp/build/outputs/bitkit/<variant>.bundle<Variant>invocation automatically publishes the established versionedbitkit-*.aabcopy underapp/build/outputs/bitkit/<variant>.justcommands, and CI.app-*artifacts and metadata remain owned by AGP underapp/build/outputs/apkandapp/build/outputs/bundle.Consumer delivery
Update the two public consumers before #1127 merges. Track both changes through this issue; separate planning issues in the consumer repositories are not required.
bitkit-e2e-tests/scripts/build-android-apk.shapp/build/outputs/bitkit/devDebugorapp/build/outputs/bitkit/mainnetDebugafter the existingassemble*command.aut/bitkit_e2e.apkfor local and regtest runs.aut/bitkit_e2e_mainnet.apkfor mainnet runs.bitkit-nightly/.github/workflows/mainnet-probe.ymlapp/build/outputs/bitkit/mainnetDebugafterassembleMainnetDebug.probe-apk/bitkit_e2e.apk.During the merge transition, each consumer resolves the compatibility directory first and the legacy AGP output directory second. This keeps the same consumer revision working against Android refs from both sides of #1127.
Delivery order
bitkit-e2e-testscompatibility update.bitkit-nightlycompatibility update.Acceptance criteria
./gradlew assembleDevDebugpublishes exactly onebitkit-dev-debug-*-universal.apkunderapp/build/outputs/bitkit/devDebug../gradlew assembleMainnetDebugpublishes exactly onebitkit-mainnet-debug-*-universal.apkunderapp/build/outputs/bitkit/mainnetDebug../gradlew bundleMainnetReleasepublishes exactly one currentbitkit-mainnet-release-*.aabunderapp/build/outputs/bitkit/mainnetRelease.bitkit-e2e-testsAndroid build helper succeeds against Android refs before and after chore: upgrade to agp 9 and configure parallelism #1127 for local, regtest, and mainnet builds.aut/.bitkit-nightlymainnet probe reaches the upload step withprobe-apk/bitkit_e2e.apkpresent against Android refs before and after chore: upgrade to agp 9 and configure parallelism #1127.