felislynx
09/30/2021, 11:11 AM> Task :Commons:compileKotlinIos
> Task :Commons:linkPodDebugFrameworkIos
Command PhaseScriptExecution failed with a nonzero exit code
No error is present in logs -_-
This is result after upgrading everything to latest versions.
Before that i had error
debugFramework is missing in the map kotlin
build.gradle.kts without modifications:
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
plugins {
kotlin("multiplatform")
id("org.jetbrains.kotlin.native.cocoapods")
id("com.android.library")
id("kotlinx-serialization")
}
android {
compileSdkVersion(29)
defaultConfig {
minSdkVersion(14)
targetSdkVersion(29)
versionCode = 1
versionName = "1.0"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
}
kotlin {
android()
//select iOS target platform depending on the Xcode environment variables
val iOSTarget: (String, KotlinNativeTarget.() -> Unit) -> KotlinNativeTarget =
if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true)
::iosArm64
else
::iosX64
val iosEnding = if (System.getenv("SDK_NAME")?.startsWith("iphoneos") == true) "arm64" else "x64"
iOSTarget("ios") {}
version = "1.0.0"
cocoapods {
summary = "Commons"
homepage = ""
}
sourceSets["commonMain"].dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-common")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.8")
implementation("io.ktor:ktor-client-core:1.6.0")
implementation("io.ktor:ktor-client-auth:1.6.0")
implementation("io.ktor:ktor-client-json:1.6.0")
implementation("io.ktor:ktor-client-serialization:1.6.0")
implementation("io.ktor:ktor-client-logging:1.6.0")
}
sourceSets["androidMain"].dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib")
api("io.ktor:ktor-client-android:1.6.0")
}
sourceSets["iosMain"].dependencies {
implementation("io.ktor:ktor-client-ios:1.6.0")
}
}
val packForXcode by tasks.creating(Sync::class) {
group = "build"
//selecting the right configuration for the iOS framework depending on the Xcode environment variables
val mode = System.getenv("CONFIGURATION") ?: "DEBUG"
val framework = kotlin.targets.getByName<KotlinNativeTarget>("ios").binaries.getFramework(mode)
inputs.property("mode", mode)
dependsOn(framework.linkTask)
val targetDir = File(buildDir, "xcode-frameworks")
from({ framework.outputDirectory })
into(targetDir)
doLast {
val gradlew = File(targetDir, "gradlew")
gradlew.writeText("#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew \$@\n")
gradlew.setExecutable(true)
}
}
tasks.getByName("build").dependsOn(packForXcode)
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().all {
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
}
Also kts file after upgrade:
import org.jetbrains.kotlin.gradle.plugin.mpp.Framework
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("multiplatform")
kotlin("native.cocoapods")
id("com.android.library")
id("kotlinx-serialization")
}
android {
compileSdkVersion(29)
defaultConfig {
minSdkVersion(14)
targetSdkVersion(29)
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
}
kotlin {
android()
val onPhone = System.getenv("SDK_NAME")?.startsWith("iphoneos") ?: false
if (onPhone) {
iosArm64("ios")
} else {
iosX64("ios")
}
version = "1.0.0"
cocoapods {
summary = "Commons"
}
sourceSets {
all {
languageSettings.apply {
useExperimentalAnnotation("kotlin.RequiresOptIn")
useExperimentalAnnotation("kotlinx.coroutines.ExperimentalCoroutinesApi")
}
}
}
sourceSets["commonMain"].dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-common")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:1.3.8")
implementation("io.ktor:ktor-client-core:1.6.3")
implementation("io.ktor:ktor-client-auth:1.6.3")
implementation("io.ktor:ktor-client-json:1.6.3")
implementation("io.ktor:ktor-client-serialization:1.6.3")
implementation("io.ktor:ktor-client-logging:1.6.3")
}
sourceSets["androidMain"].dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib")
api("io.ktor:ktor-client-android:1.6.3")
}
sourceSets["iosMain"].dependencies {
implementation("io.ktor:ktor-client-ios:1.6.3")
}
targets.withType<KotlinNativeTarget> {
binaries.withType<Framework> {
isStatic = true
transitiveExport = false
baseName = "Commons"
}
}
}
tasks.withType<KotlinCompile>().all {
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
}
}
On both kts scripts project builds for iphone but doesn’t archive