From 8acf3b1d7650b53dca8ad5b7fcdcb274cd29ee87 Mon Sep 17 00:00:00 2001 From: Yaroslav Chernyshev Date: Mon, 8 Feb 2021 16:35:16 +0300 Subject: [PATCH] [Cocoapods] Fail import if project's version wasn't specified #Fixed KT-44000 --- .../kotlin/gradle/native/CocoaPodsIT.kt | 16 ++++++++++++++++ .../native/cocoapods/CocoapodsExtension.kt | 10 +++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsIT.kt index 22eb9cf3fea..cc6dbabdb3c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/CocoaPodsIT.kt @@ -309,6 +309,22 @@ class CocoaPodsIT : BaseGradleIT() { project.test(":kotlin-library:podDownload") } + @Test + fun errorIfVersionIsNotSpecified() { + with(project.gradleBuildScript()) { + useLines { lines -> + lines.filter { line -> "version = \"1.0\"" !in line }.joinToString(separator = "\n") + }.also { writeText(it) } + } + hooks.addHook { + assertContains("Cocoapods Integration requires version of this project to be specified.") + } + + project.build(POD_IMPORT_TASK_NAME, "-Pkotlin.native.cocoapods.generate.wrapper=true") { + assertFailed() + hooks.trigger(this) + } + } // up-to-date tests diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/CocoapodsExtension.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/CocoapodsExtension.kt index 00639d9740d..625ded6c061 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/CocoapodsExtension.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/CocoapodsExtension.kt @@ -19,7 +19,15 @@ import java.net.URI open class CocoapodsExtension(private val project: Project) { @get:Input val version: String - get() = project.version.toString() + get() { + require(project.version != Project.DEFAULT_VERSION) { """ + Cocoapods Integration requires version of this project to be specified. + Please, add line 'version = ""' to project's build file. + For more details, please, see https://guides.cocoapods.org/syntax/podspec.html#version + """.trimIndent() + } + return project.version.toString() + } /** * Configure authors of the pod built from this project.