diff --git a/.idea/dictionaries/Andrey_Yastrebov.xml b/.idea/dictionaries/Andrey_Yastrebov.xml index e0b05d268fd..ade21534030 100644 --- a/.idea/dictionaries/Andrey_Yastrebov.xml +++ b/.idea/dictionaries/Andrey_Yastrebov.xml @@ -2,6 +2,7 @@ sandboxing + xcconfig \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt index c92add2f2c6..487e6204482 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/apple/AppleXcodeTasks.kt @@ -187,6 +187,7 @@ internal fun Project.registerEmbedAndSignAppleFrameworkTask(framework: Framework "\nTo make the $frameworkTaskName task pass, disable this feature. " + "\nIn your Xcode project, navigate to \"Build Setting\", " + "and under \"Build Options\" set \"User script sandboxing\" (ENABLE_USER_SCRIPT_SANDBOXING) to \"NO\". " + + "\nThen, run \"./gradlew --stop\" to stop the Gradle daemon" + "\nFor more information, see documentation: https://jb.gg/ltd9e6" ) } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodspecTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodspecTask.kt index 85f35746f8c..16e8d71eea0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodspecTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/cocoapods/tasks/PodspecTask.kt @@ -123,14 +123,16 @@ abstract class PodspecTask @Inject constructor(private val projectLayout: Projec val deploymentTargets = run { listOf(ios, osx, tvos, watchos).map { it.get() }.filter { it.deploymentTarget != null }.joinToString("\n") { - if (extraSpecAttributes.get().containsKey("${it.name}.deployment_target")) "" else "| spec.${it.name}.deployment_target = '${it.deploymentTarget}'" + if (extraSpecAttributes.get() + .containsKey("${it.name}.deployment_target") + ) "" else "| spec.${it.name}.deployment_target = '${it.deploymentTarget}'" } } - val dependencies = pods.get().map { pod -> + val dependencies = pods.get().joinToString(separator = "\n") { pod -> val versionSuffix = if (pod.version != null) ", '${pod.version}'" else "" "| spec.dependency '${pod.name}'$versionSuffix" - }.joinToString(separator = "\n") + } val frameworkDir = projectLayout.cocoapodsBuildDirs.framework.getFile().relativeTo(outputFile.parentFile) val vendoredFramework = if (publishing.get()) "${frameworkName.get()}.xcframework" else frameworkDir.resolve("${frameworkName.get()}.framework").invariantSeparatorsPath @@ -153,7 +155,14 @@ abstract class PodspecTask @Inject constructor(private val projectLayout: Projec val libraries = if (extraSpecAttributes.get().containsKey("libraries")) "" else "| spec.libraries = 'c++'" - val xcConfig = if (publishing.get() || extraSpecAttributes.get().containsKey("pod_target_xcconfig")) "" else + val xcConfig = if (publishing.get() || extraSpecAttributes.get().containsKey("xcconfig")) "" else + """ | + | spec.xcconfig = { + | 'ENABLE_USER_SCRIPT_SANDBOXING' => 'NO', + | } + """.trimMargin() + + val podXcConfig = if (publishing.get() || extraSpecAttributes.get().containsKey("pod_target_xcconfig")) "" else """ | | spec.pod_target_xcconfig = { | 'KOTLIN_PROJECT_PATH' => '${projectPath.get()}', @@ -203,6 +212,7 @@ abstract class PodspecTask @Inject constructor(private val projectLayout: Projec $dependencies $vendoredFrameworkExistenceCheck $xcConfig + $podXcConfig $scriptPhase $customSpec |end