From 7b9a9b1ddc6acd3af66e8fc73de9401ccdfeac4b Mon Sep 17 00:00:00 2001
From: Janne Mareike Koschinski <janne@kuschku.de>
Date: Wed, 30 Aug 2023 15:10:39 +0200
Subject: [PATCH] fix: correct signing configuration

---
 gradle/convention/build.gradle.kts            |  4 +++
 .../kotlin/AndroidApplicationConvention.kt    | 13 +--------
 .../src/main/kotlin/SigningConvention.kt      | 29 +++++++++++++++++++
 3 files changed, 34 insertions(+), 12 deletions(-)
 create mode 100644 gradle/convention/src/main/kotlin/SigningConvention.kt

diff --git a/gradle/convention/build.gradle.kts b/gradle/convention/build.gradle.kts
index f6940cf74..99399c857 100644
--- a/gradle/convention/build.gradle.kts
+++ b/gradle/convention/build.gradle.kts
@@ -32,6 +32,10 @@ gradlePlugin {
       id = "justjanne.kotlin"
       implementationClass = "KotlinConvention"
     }
+    register("signing") {
+      id = "justjanne.signing"
+      implementationClass = "SigningConvention"
+    }
   }
 }
 
diff --git a/gradle/convention/src/main/kotlin/AndroidApplicationConvention.kt b/gradle/convention/src/main/kotlin/AndroidApplicationConvention.kt
index 35de208b5..5f424cb73 100644
--- a/gradle/convention/src/main/kotlin/AndroidApplicationConvention.kt
+++ b/gradle/convention/src/main/kotlin/AndroidApplicationConvention.kt
@@ -4,7 +4,6 @@ import org.gradle.api.Plugin
 import org.gradle.api.Project
 import org.gradle.kotlin.dsl.configure
 import util.git
-import util.properties
 import java.util.Locale
 
 class AndroidApplicationConvention : Plugin<Project> {
@@ -13,6 +12,7 @@ class AndroidApplicationConvention : Plugin<Project> {
       with(pluginManager) {
         apply("com.android.application")
         apply("justjanne.kotlin.android")
+        apply("justjanne.signing")
       }
 
       extensions.configure<ApplicationExtension> {
@@ -49,17 +49,6 @@ class AndroidApplicationConvention : Plugin<Project> {
           buildConfig = true
         }
 
-        signingConfigs {
-          SigningData.of(project.rootProject.properties("signing.properties"))?.let {
-            create("default") {
-              storeFile = file(it.storeFile)
-              storePassword = it.storePassword
-              keyAlias = it.keyAlias
-              keyPassword = it.keyPassword
-            }
-          }
-        }
-
         compileOptions {
           sourceCompatibility = JavaVersion.VERSION_11
           targetCompatibility = JavaVersion.VERSION_11
diff --git a/gradle/convention/src/main/kotlin/SigningConvention.kt b/gradle/convention/src/main/kotlin/SigningConvention.kt
new file mode 100644
index 000000000..d2813f220
--- /dev/null
+++ b/gradle/convention/src/main/kotlin/SigningConvention.kt
@@ -0,0 +1,29 @@
+import com.android.build.api.dsl.ApplicationExtension
+import org.gradle.api.Plugin
+import org.gradle.api.Project
+import org.gradle.kotlin.dsl.configure
+import util.properties
+
+class SigningConvention : Plugin<Project> {
+  override fun apply(target: Project) {
+    with(target) {
+      with(pluginManager) {
+        apply("com.android.application")
+        apply("justjanne.kotlin.android")
+      }
+
+      extensions.configure<ApplicationExtension> {
+        signingConfigs {
+          SigningData.of(rootProject.properties("signing.properties"))?.let {
+            create("default") {
+              storeFile = file(it.storeFile)
+              storePassword = it.storePassword
+              keyAlias = it.keyAlias
+              keyPassword = it.keyPassword
+            }
+          }
+        }
+      }
+    }
+  }
+}
-- 
GitLab