mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-14 12:57:04 +05:30
feat(rename-artifacts): add support for obfuscation mapping files
This commit is contained in:
parent
531234e036
commit
cc55687292
4 changed files with 28 additions and 4 deletions
2
android/.gitignore
vendored
Normal file
2
android/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/apk/
|
||||||
|
/bundle/
|
|
@ -5,6 +5,7 @@ import com.android.build.api.variant.ApplicationAndroidComponentsExtension
|
||||||
import com.android.build.api.variant.VariantOutputConfiguration
|
import com.android.build.api.variant.VariantOutputConfiguration
|
||||||
import dev.msfjarvis.aps.gradle.artifacts.CollectApksTask
|
import dev.msfjarvis.aps.gradle.artifacts.CollectApksTask
|
||||||
import dev.msfjarvis.aps.gradle.artifacts.CollectBundleTask
|
import dev.msfjarvis.aps.gradle.artifacts.CollectBundleTask
|
||||||
|
import java.util.Locale
|
||||||
import org.gradle.api.Plugin
|
import org.gradle.api.Plugin
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.gradle.kotlin.dsl.getByType
|
import org.gradle.kotlin.dsl.getByType
|
||||||
|
@ -17,21 +18,24 @@ class RenameArtifactsPlugin : Plugin<Project> {
|
||||||
project.pluginManager.withPlugin("com.android.application") {
|
project.pluginManager.withPlugin("com.android.application") {
|
||||||
project.extensions.getByType<ApplicationAndroidComponentsExtension>().run {
|
project.extensions.getByType<ApplicationAndroidComponentsExtension>().run {
|
||||||
onVariants { variant ->
|
onVariants { variant ->
|
||||||
project.tasks.register<CollectApksTask>("collect${variant.name.capitalize()}Apks") {
|
val taskPrefix = "collect${variant.name.capitalize(Locale.ROOT)}"
|
||||||
|
project.tasks.register<CollectApksTask>("${taskPrefix}Apks") {
|
||||||
variantName.set(variant.name)
|
variantName.set(variant.name)
|
||||||
apkFolder.set(variant.artifacts.get(SingleArtifact.APK))
|
apkFolder.set(variant.artifacts.get(SingleArtifact.APK))
|
||||||
|
mappingFile.set(variant.artifacts.get(SingleArtifact.OBFUSCATION_MAPPING_FILE))
|
||||||
builtArtifactsLoader.set(variant.artifacts.getBuiltArtifactsLoader())
|
builtArtifactsLoader.set(variant.artifacts.getBuiltArtifactsLoader())
|
||||||
outputDirectory.set(project.layout.projectDirectory.dir("outputs"))
|
outputDirectory.set(project.layout.projectDirectory.dir("apk"))
|
||||||
}
|
}
|
||||||
project.tasks.register<CollectBundleTask>("collect${variant.name.capitalize()}Bundle") {
|
project.tasks.register<CollectBundleTask>("${taskPrefix}Bundle") {
|
||||||
val mainOutput =
|
val mainOutput =
|
||||||
variant.outputs.single {
|
variant.outputs.single {
|
||||||
it.outputType == VariantOutputConfiguration.OutputType.SINGLE
|
it.outputType == VariantOutputConfiguration.OutputType.SINGLE
|
||||||
}
|
}
|
||||||
variantName.set(variant.name)
|
variantName.set(variant.name)
|
||||||
versionName.set(mainOutput.versionName)
|
versionName.set(mainOutput.versionName)
|
||||||
|
mappingFile.set(variant.artifacts.get(SingleArtifact.OBFUSCATION_MAPPING_FILE))
|
||||||
bundleFile.set(variant.artifacts.get(SingleArtifact.BUNDLE))
|
bundleFile.set(variant.artifacts.get(SingleArtifact.BUNDLE))
|
||||||
outputDirectory.set(project.layout.projectDirectory.dir("outputs"))
|
outputDirectory.set(project.layout.projectDirectory.dir("bundle"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,11 @@ import java.nio.file.Paths
|
||||||
import java.nio.file.StandardCopyOption
|
import java.nio.file.StandardCopyOption
|
||||||
import org.gradle.api.DefaultTask
|
import org.gradle.api.DefaultTask
|
||||||
import org.gradle.api.file.DirectoryProperty
|
import org.gradle.api.file.DirectoryProperty
|
||||||
|
import org.gradle.api.file.RegularFileProperty
|
||||||
import org.gradle.api.provider.Property
|
import org.gradle.api.provider.Property
|
||||||
import org.gradle.api.tasks.CacheableTask
|
import org.gradle.api.tasks.CacheableTask
|
||||||
import org.gradle.api.tasks.Input
|
import org.gradle.api.tasks.Input
|
||||||
|
import org.gradle.api.tasks.InputFile
|
||||||
import org.gradle.api.tasks.InputFiles
|
import org.gradle.api.tasks.InputFiles
|
||||||
import org.gradle.api.tasks.Internal
|
import org.gradle.api.tasks.Internal
|
||||||
import org.gradle.api.tasks.OutputDirectory
|
import org.gradle.api.tasks.OutputDirectory
|
||||||
|
@ -21,6 +23,10 @@ import org.gradle.api.tasks.TaskAction
|
||||||
abstract class CollectApksTask : DefaultTask() {
|
abstract class CollectApksTask : DefaultTask() {
|
||||||
@get:InputFiles @get:PathSensitive(PathSensitivity.NONE) abstract val apkFolder: DirectoryProperty
|
@get:InputFiles @get:PathSensitive(PathSensitivity.NONE) abstract val apkFolder: DirectoryProperty
|
||||||
|
|
||||||
|
@get:InputFile
|
||||||
|
@get:PathSensitive(PathSensitivity.NONE)
|
||||||
|
abstract val mappingFile: RegularFileProperty
|
||||||
|
|
||||||
@get:Input abstract val variantName: Property<String>
|
@get:Input abstract val variantName: Property<String>
|
||||||
|
|
||||||
@get:Internal abstract val builtArtifactsLoader: Property<BuiltArtifactsLoader>
|
@get:Internal abstract val builtArtifactsLoader: Property<BuiltArtifactsLoader>
|
||||||
|
@ -40,5 +46,10 @@ abstract class CollectApksTask : DefaultTask() {
|
||||||
StandardCopyOption.REPLACE_EXISTING,
|
StandardCopyOption.REPLACE_EXISTING,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Files.copy(
|
||||||
|
mappingFile.get().asFile.toPath(),
|
||||||
|
outputDir.resolve("mapping.txt").toPath(),
|
||||||
|
StandardCopyOption.REPLACE_EXISTING,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,8 @@ import org.gradle.api.tasks.TaskAction
|
||||||
abstract class CollectBundleTask : DefaultTask() {
|
abstract class CollectBundleTask : DefaultTask() {
|
||||||
@get:InputFile abstract val bundleFile: RegularFileProperty
|
@get:InputFile abstract val bundleFile: RegularFileProperty
|
||||||
|
|
||||||
|
@get:InputFile abstract val mappingFile: RegularFileProperty
|
||||||
|
|
||||||
@get:Input abstract val variantName: Property<String>
|
@get:Input abstract val variantName: Property<String>
|
||||||
|
|
||||||
@get:Input abstract val versionName: Property<String>
|
@get:Input abstract val versionName: Property<String>
|
||||||
|
@ -29,5 +31,10 @@ abstract class CollectBundleTask : DefaultTask() {
|
||||||
outputDir.resolve("Claw-${variantName.get()}-${versionName.get()}.aab").toPath(),
|
outputDir.resolve("Claw-${variantName.get()}-${versionName.get()}.aab").toPath(),
|
||||||
StandardCopyOption.REPLACE_EXISTING,
|
StandardCopyOption.REPLACE_EXISTING,
|
||||||
)
|
)
|
||||||
|
Files.copy(
|
||||||
|
mappingFile.get().asFile.toPath(),
|
||||||
|
outputDir.resolve("mapping.txt").toPath(),
|
||||||
|
StandardCopyOption.REPLACE_EXISTING,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue