import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget plugins { kotlin("multiplatform") id("com.android.library") id("kotlin-android-extensions") } group = "me.h_mal" version = "1.0-SNAPSHOT" repositories { gradlePluginPortal() google() jcenter() mavenCentral() } kotlin { android() iosX64("ios") { binaries { framework("shared") // framework { // baseName = "shared" // } } } sourceSets { val ktorVersion = "1.2.1" val serializationVersion = "0.11.0" val coroutineVersion = "1.3.7" val kotlin_version = "1.3.50" val commonMain by getting { dependencies { api("org.jetbrains.kotlin:kotlin-stdlib-common") implementation("org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version") // Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutineVersion") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-common:$coroutineVersion") // Serialization implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-common:$serializationVersion") // Ktor implementation("io.ktor:ktor-client-core:$ktorVersion") implementation("io.ktor:ktor-client-json:$ktorVersion") } } val commonTest by getting val androidMain by getting { dependencies { implementation("androidx.core:core-ktx:1.2.0") implementation("org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version") implementation("org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version") // Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutineVersion") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutineVersion") // Serialisation implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime:$serializationVersion") // Ktor implementation("io.ktor:ktor-client-android:$ktorVersion") } } val androidTest by getting val iosMain by getting{ dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version") // Coroutines implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-native:$coroutineVersion") // Serialization implementation("org.jetbrains.kotlinx:kotlinx-serialization-runtime-native:$serializationVersion") // Ktor implementation("io.ktor:ktor-client-ios:$ktorVersion") } } val iosTest by getting } } android { compileSdkVersion(29) defaultConfig { minSdkVersion(24) targetSdkVersion(29) versionCode = 1 versionName = "1.0" } buildTypes { getByName("release") { isMinifyEnabled = false } } } val packForXcode by tasks.creating(Sync::class) { group = "build" val mode = System.getenv("CONFIGURATION") ?: "DEBUG" val framework = kotlin.targets.getByName("ios").binaries.getFramework("shared", mode) inputs.property("mode", mode) dependsOn(framework.linkTask) val targetDir = File(buildDir, "xcode-frameworks") from({ framework.outputDirectory }) into(targetDir) } tasks.getByName("build").dependsOn(packForXcode)