mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-25 12:25:20 +00:00
feat: Introduce Gradle property to control APK splits (#560)
* feat: Introduce Gradle property to control APK splits This commit introduces a new Gradle project property, `buildSplitApks`, to conditionally enable or disable the generation of ABI-specific (arm64, x86_64) and universal APKs. Key changes: - In `app/build.gradle.kts`, the `splits.abi.isEnable` flag is now dynamically set based on the `buildSplitApks` property. - APK splitting is disabled by default to support standard Android App Bundle (`bundleRelease`) builds. - The release workflow (`release.yml`) is updated to pass `-PbuildSplitApks=true` when building release APKs for GitHub. - The general Android build workflow (`android-build.yml`) is also modified to enable splits only for the `Release` variant, ensuring debug builds are not affected. * chore: Simplify and automate APK split builds This commit simplifies the build process by automatically enabling ABI splits for APKs (`assemble`) and disabling them for AABs (`bundle`). This removes the need to manually pass the `-PbuildSplitApks=true` property. The build script now intelligently determines whether to create architecture-specific APKs based on the task being executed (e.g., `assembleRelease` vs. `bundleRelease`). The GitHub Actions workflows (`release.yml`, `android-build.yml`) have been updated to remove this now-redundant property, streamlining the CI configuration.
This commit is contained in:
@@ -48,9 +48,16 @@ android {
|
|||||||
|
|
||||||
// APK splits for GitHub releases - creates arm64, x86_64, and universal APKs
|
// APK splits for GitHub releases - creates arm64, x86_64, and universal APKs
|
||||||
// AAB for Play Store handles architecture distribution automatically
|
// AAB for Play Store handles architecture distribution automatically
|
||||||
|
// Auto-detects: splits enabled for assemble tasks, disabled for bundle tasks
|
||||||
|
// Works in Android Studio GUI and CLI without needing extra properties
|
||||||
|
val enableSplits = gradle.startParameter.taskNames.any { taskName ->
|
||||||
|
taskName.contains("assemble", ignoreCase = true) &&
|
||||||
|
!taskName.contains("bundle", ignoreCase = true)
|
||||||
|
}
|
||||||
|
|
||||||
splits {
|
splits {
|
||||||
abi {
|
abi {
|
||||||
isEnable = true
|
isEnable = enableSplits
|
||||||
reset()
|
reset()
|
||||||
include("arm64-v8a", "x86_64", "armeabi-v7a", "x86")
|
include("arm64-v8a", "x86_64", "armeabi-v7a", "x86")
|
||||||
isUniversalApk = true // For F-Droid and fallback
|
isUniversalApk = true // For F-Droid and fallback
|
||||||
|
|||||||
Reference in New Issue
Block a user