diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 279db4a63b7e9465661e10bd91c45c8f9a9802b3..24484e8e9ed74091d2f0d5348c210485d99d2f75 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -37,13 +37,12 @@ android {
   compileSdkVersion(28)
 
   signingConfigs {
-    val signing = project.rootProject.properties("signing.properties")
-    if (signing != null) {
+    SigningData.of(project.rootProject.properties("signing.properties"))?.let {
       create("default") {
-        storeFile = file(signing.getProperty("storeFile"))
-        storePassword = signing.getProperty("storePassword")
-        keyAlias = signing.getProperty("keyAlias")
-        keyPassword = signing.getProperty("keyPassword")
+        storeFile = file(it.storeFile)
+        storePassword = it.storePassword
+        keyAlias = it.keyAlias
+        keyPassword = it.keyPassword
       }
     }
   }
diff --git a/buildSrc/src/main/kotlin/ProjectHelper.kt b/buildSrc/src/main/kotlin/ProjectHelper.kt
index d7517e04eb67b5253c9917a0074b8165745bb6bb..1a9f2c31863975137fd0be0fd18a06a8287d0ae4 100644
--- a/buildSrc/src/main/kotlin/ProjectHelper.kt
+++ b/buildSrc/src/main/kotlin/ProjectHelper.kt
@@ -41,3 +41,23 @@ fun Project.properties(fileName: String): Properties? {
   props.load(file.inputStream())
   return props
 }
+
+data class SigningData(
+  val storeFile: String,
+  val storePassword: String,
+  val keyAlias: String,
+  val keyPassword: String
+) {
+  companion object {
+    fun of(properties: Properties?): SigningData? {
+      if (properties == null) return null
+
+      val storeFile = properties.getProperty("storeFile") ?: return null
+      val storePassword = properties.getProperty("storePassword") ?: return null
+      val keyAlias = properties.getProperty("keyAlias") ?: return null
+      val keyPassword = properties.getProperty("keyPassword") ?: return null
+
+      return SigningData(storeFile, storePassword, keyAlias, keyPassword)
+    }
+  }
+}