diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt
index d65d1d2..6e17ab7 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/mpp/KotlinMultiplatformPlugin.kt
@@ -46,7 +46,6 @@
 import org.jetbrains.kotlin.konan.target.KonanTarget.*
 import org.jetbrains.kotlin.konan.target.presetName
 import org.jetbrains.kotlin.statistics.metrics.StringMetrics
-import java.nio.file.Path
 import java.nio.file.Paths
 
 class KotlinMultiplatformPlugin : Plugin<Project> {
@@ -272,7 +271,7 @@
                     )
                     it.compilerOptions.freeCompilerArgs.addAll(
                         project.provider {
-                            val swiftLibraries = when (appleTarget.konanTarget) {
+                            val sdkName = when (appleTarget.konanTarget) {
                                 is MACOS_X64, MACOS_ARM64 -> "macosx" // ??? catalyst ???
                                 is IOS_X64, IOS_SIMULATOR_ARM64 -> "iphonesimulator"
                                 is IOS_ARM64 -> "iphoneos"
@@ -283,8 +282,10 @@
                                 else -> error("???")
                             }
                             // Get from dependencies pif instead?
-                            val swiftLibrariesPath = Paths.get(runCommand(listOf("xcode-select", "-p")).dropLast(1)).resolve("Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/${swiftLibraries}")
-                            listOf("-linker-option", "-L$swiftLibrariesPath")
+                            val swiftLibrariesPath = Paths.get(runCommand(listOf("xcode-select", "-p")).dropLast(1)).resolve("Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/${sdkName}")
+                            val swiftLibrariesInSdkPath = Paths.get(runCommand(listOf("xcrun", "--sdk", sdkName, "--show-sdk-path")).dropLast(1)).resolve("usr/lib/swift")
+
+                            listOf("-linker-option", "-L$swiftLibrariesPath", "-linker-option", "-L$swiftLibrariesInSdkPath")
                         }
                     )
                 }
diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/PackageSwiftGenerateTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/PackageSwiftGenerateTask.kt
index 89ae4b9..4098252 100644
--- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/PackageSwiftGenerateTask.kt
+++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/PackageSwiftGenerateTask.kt
@@ -255,7 +255,7 @@
             try {
                 konanTargetNames.forEach { konanTargetName ->
                     runCommand(
-                        listOf(
+                        command = listOf(
                             "/Users/Timofey.Solonin/.konan/kotlin-native-prebuilt-macos-aarch64-1.9.20-Beta-224/bin/cinterop",
                             "-def", defFilePath.path,
                             "-target", konanTargetName,
@@ -263,7 +263,7 @@
                                 val argsFromDependency = mutableListOf(
                                     "-compiler-option", "-I${buildDir.resolve("debug/$it.build")}"
                                 )
-                                val expectedDependencyLibPath = spmInteropDir.resolve("$it.klib")
+                                val expectedDependencyLibPath = spmInteropDir.resolve("${it}_$konanTargetName.klib")
                                 if (expectedDependencyLibPath.exists()) {
                                     argsFromDependency.addAll(listOf("-library", expectedDependencyLibPath.path))
                                 }
@@ -277,7 +277,8 @@
                             "-compiler-option", "-fmodules",
                             "-Xmodule-name", target,
                             "-o", spmInteropDir.resolve("${target}_$konanTargetName.klib").path
-                        )
+                        ),
+                        logger = logger
                     )
                 }
             } catch (e: Throwable) {
