2
0

ApplicationExtensionExt.kt 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * Copyright (c) Milan Jurkulák 2024.
  3. * Contact:
  4. * e: mimoccc@gmail.com
  5. * e: mj@mjdev.org
  6. * w: https://mjdev.org
  7. */
  8. @file:Suppress("unused")
  9. package org.mjdev.gradle.extensions
  10. import com.android.build.api.dsl.ApplicationExtension
  11. import org.gradle.api.Project
  12. import java.io.FileInputStream
  13. import java.util.*
  14. import kotlin.String
  15. import org.mjdev.gradle.custom.SigningsScope
  16. fun ApplicationExtension.setSigningConfigs(
  17. project: Project,
  18. scope: SigningsScope = SigningsScope(),
  19. config: SigningsScope.() -> Unit = {}
  20. ) = signingConfigs {
  21. config.invoke(scope)
  22. create("release") {
  23. val rootProject = project.rootProject
  24. val keystorePropertiesFile = rootProject.file(scope.releaseKeyFile)
  25. if (!keystorePropertiesFile.exists()) {
  26. System.err.println("📜 Missing release.signing.properties file for release signing")
  27. } else {
  28. val keystoreProperties = Properties().apply {
  29. load(FileInputStream(keystorePropertiesFile))
  30. }
  31. try {
  32. storeFile = rootProject.file(keystoreProperties["storeFile"] as String)
  33. storePassword = keystoreProperties["storePassword"] as String
  34. keyAlias = keystoreProperties["keyAlias"] as String
  35. keyPassword = keystoreProperties["keyPassword"] as String
  36. } catch (e: Exception) {
  37. System.err.println("📜 release.signing.properties file is malformed")
  38. }
  39. }
  40. }
  41. getByName("debug") {
  42. val rootProject = project.rootProject
  43. val keystorePropertiesFile = rootProject.file(scope.debugKeyFile)
  44. if (!keystorePropertiesFile.exists()) {
  45. System.err.println("📜 Missing release.signing.properties file for release signing")
  46. } else {
  47. val keystoreProperties = Properties().apply {
  48. load(FileInputStream(keystorePropertiesFile))
  49. }
  50. try {
  51. storeFile = rootProject.file(keystoreProperties["storeFile"] as String)
  52. storePassword = keystoreProperties["storePassword"] as String
  53. keyAlias = keystoreProperties["keyAlias"] as String
  54. keyPassword = keystoreProperties["keyPassword"] as String
  55. } catch (e: Exception) {
  56. System.err.println("📜 release.signing.properties file is malformed")
  57. }
  58. }
  59. }
  60. }