From 1c7866e81f2f41dfe202a4094e7f2007f0294b89 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Thu, 21 Mar 2019 10:56:45 +0700 Subject: [PATCH] CocoaPods: Require Gradle wrapper for Xcode build --- .../kotlin/gradle/tasks/CocoapodsTasks.kt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/CocoapodsTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/CocoapodsTasks.kt index e1494c2d681..9e66d42beb2 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/CocoapodsTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/CocoapodsTasks.kt @@ -30,7 +30,6 @@ open class PodspecTask : DefaultTask() { lateinit var settings: CocoapodsExtension // TODO: Handle Framework name customization - rename the framework during sync process. - // TODO: Support fat arm32/arm64 frameworks. @TaskAction fun generate() { val frameworkDir = project.cocoapodsBuildDirs.framework.relativeTo(outputFile.parentFile).path @@ -39,14 +38,20 @@ open class PodspecTask : DefaultTask() { "| spec.dependency '${pod.name}'$versionSuffix" }.joinToString(separator = "\n") - // Try to construct a path to Gradle wrapper. If there is no wrapper, just run the local Gradle. val gradleWrapper = (project.rootProject.tasks.getByName("wrapper") as? Wrapper)?.scriptFile - val gradleCommand = if (gradleWrapper != null && gradleWrapper.exists()) { - "\$REPO_ROOT/${gradleWrapper.toRelativeString(project.projectDir)}" - } else { - "gradle" + require(gradleWrapper != null && gradleWrapper.exists()) { + """ + The Gradle wrapper is required to run the build from Xcode. To generate the wrapper, run: + + gradle :wrapper + + See details about the wrapper at https://docs.gradle.org/current/userguide/gradle_wrapper.html + """.trimIndent() } + val gradleCommand = "\$REPO_ROOT/${gradleWrapper!!.toRelativeString(project.projectDir)}" + + outputFile.writeText(""" |Pod::Spec.new do |spec| | spec.name = '$specName'