Cdev
08/04/2021, 5:02 PMval buildXcFramework by tasks.registering {
dependsOn("deleteXcFramework")
group = "build"
val mode = "Release"
val frameworks = arrayOf("iosArm64", "iosX64", "iosArm32")
.map { kotlin.targets.getByName<KotlinNativeTarget>(it).binaries.getFramework(mode) }
inputs.property("mode", mode)
dependsOn(frameworks.map { it.linkTask })
doLast { buildXcFramework(frameworks) }
}
Trevor Stone
08/04/2021, 5:05 PMios
shortcut it doesn't add itTrevor Stone
08/04/2021, 5:06 PMCdev
08/04/2021, 5:20 PMval iosX64Main by sourceSets.getting
val iosArm64Main by sourceSets.getting
val iosArm32Main by sourceSets.getting
val iosMain by sourceSets.creating {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosArm32Main.dependsOn(this)
}
Trevor Stone
08/04/2021, 5:28 PMTrevor Stone
08/04/2021, 5:32 PMCdev
08/04/2021, 5:45 PMTrevor Stone
08/04/2021, 6:04 PMTrevor Stone
08/04/2021, 6:04 PMTrevor Stone
08/04/2021, 6:05 PMTrevor Stone
08/04/2021, 6:05 PMTrevor Stone
08/04/2021, 6:05 PMCdev
08/04/2021, 6:26 PMkotlin {
val serializationVersion = "1.1.0"
val koTestVersion = "4.4.3"
android()
iosArm32()
ios {
binaries {
framework {
baseName = "MBKMMShared"
}
}
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$serializationVersion")
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
implementation("io.kotest:kotest-property:$koTestVersion")
implementation("io.kotest:kotest-assertions-core:$koTestVersion")
}
}
val androidMain by getting
val androidTest by getting {
dependencies {
implementation(kotlin("test-junit"))
implementation("junit:junit:4.13")
}
}
val iosTest by getting
val iosX64Main by sourceSets.getting
val iosArm64Main by sourceSets.getting
val iosArm32Main by sourceSets.getting
val iosMain by sourceSets.getting {
dependsOn(commonMain)
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosArm32Main.dependsOn(this)
}
}
}
And I think that helped because on gradle sync I got this:
Task sharedrunCommonizerKotlin KLIB commonizer: Please wait while preparing libraries. [Step 1 of 1] Preparing commonized Kotlin/Native libraries for targets [ios_arm32], [ios_x64], [ios_arm64] (420 items) * Read lazy (uninitialized) libraries in 400ms * Loaded declarations for [ios_arm32] in 17s 450ms * Loaded declarations for [ios_x64] in 14s 387ms * Loaded declarations for [ios_arm64] in 13s 413ms * Commonized declarations in 1s 696ms * Prepared new descriptors in 3s 486ms * Written libraries for [ios_arm32(*), ios_x64, ios_arm64] in 11s 698ms * Written libraries for [ios_arm32, ios_x64(*), ios_arm64] in 9s 628ms * Written libraries for [ios_arm32, ios_x64, ios_arm64(*)] in 10s 816ms * Written libraries for [ios_arm32, ios_x64, ios_arm64] in 4s 716ms TOTAL: 1m 27s 690ms [Step 1 of 1] Preparing commonized Kotlin/Native libraries for targets [ios_arm32], [ios_x64], [ios_arm64] (420 items): Done
Cdev
08/04/2021, 6:27 PM.map { kotlin.targets.getByName<KotlinNativeTarget>(it).binaries.getFramework(mode) }
Cdev
08/04/2021, 6:28 PMval buildXcFramework by tasks.registering {
dependsOn("deleteXcFramework")
group = "build"
val mode = "Release"
val frameworks = arrayOf("iosArm64", "iosX64", "iosArm32")
.map { kotlin.targets.getByName<KotlinNativeTarget>(it).binaries.getFramework(mode) }
inputs.property("mode", mode)
dependsOn(frameworks.map { it.linkTask })
doLast { buildXcFramework(frameworks) }
}