Я получил эту ошибку:
Плагин устранения ошибок [id: 'org.jetbrains.kotlin.native.cocoapods',
версия: '1.15.2']
> Запрос на этот плагин не может быть удовлетворен поскольку плагин уже находится в пути к классам с неизвестной версией, поэтому
совместимость проверить невозможно.
Вот build.gradle:
import com.codingfeline.buildkonfig.compiler.FieldSpec.Type.STRING
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization") version "1.9.23"
id("org.jetbrains.kotlin.native.cocoapods") version "1.15.2"
id("com.android.library")
id("com.google.devtools.ksp") version "1.9.24-1.0.20"
id("com.squareup.sqldelight")
id("koin")
id("com.rickclephas.kmp.nativecoroutines") version "0.13.3"
id("dev.icerock.moko.kswift") version "0.6.0"
id("com.codingfeline.buildkonfig") version "+"
id("io.kotest.multiplatform") version "5.8.0"
id("org.jetbrains.kotlinx.kover") version "0.7.4"
id("dev.icerock.mobile.multiplatform-resources")
}
val koinVersion = "3.1.4"
buildkonfig {
packageName = "id.test.shared"
objectName = "TestSharedConfig"
exposeObjectWithName = "TestSharedPublicConfig"
// default config is required
defaultConfigs {
buildConfigField(STRING, "APP_STORE_BASE_URL", "itunes.apple.com")
}
defaultConfigs("staging") {
buildConfigField(STRING, "APP_STORE_BASE_URL", "itunes.apple.com")
}
defaultConfigs("production") {
buildConfigField(STRING, "APP_STORE_BASE_URL", "itunes.apple.com")
}
}
@OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class)
kotlin {
iosX64()
iosArm64()
iosSimulatorArm64()
targetHierarchy.default()
androidTarget {
compilations.all {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
}
}
sourceSets {
commonMain.dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.0")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
implementation("io.insert-koin:koin-core:$koinVersion")
implementation("com.squareup.sqldelight:runtime:1.5.4")
implementation("io.ktor:ktor-client-core:2.3.0")
implementation("io.ktor:ktor-client-auth:2.3.0")
implementation("io.ktor:ktor-client-cio:2.3.0")
implementation("io.ktor:ktor-client-logging:2.3.0")
implementation("io.ktor:ktor-client-serialization:2.3.0")
implementation("io.ktor:ktor-client-encoding:2.3.0")
implementation("io.ktor:ktor-client-content-negotiation:2.3.0")
implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.0")
implementation("com.russhwolf:multiplatform-settings-no-arg:1.0.0-RC")
implementation("co.touchlab:stately-isolate:1.2.2")
api("co.touchlab:kermit:1.1.3")
implementation(kotlin("stdlib-common"))
implementation("co.touchlab:stately-common:1.2.2")
implementation("com.badoo.reaktive:reaktive:1.2.2")
implementation("com.badoo.reaktive:reaktive-annotations:1.2.2")
implementation("com.badoo.reaktive:coroutines-interop:1.2.2")
api("dev.icerock.moko:resources:0.24.0-beta-4")
api("dev.icerock.moko:resources-compose:0.24.0-beta-4") // for compose multiplatform
implementation("dev.icerock.moko:resources-test:0.24.0-beta-4")
}
commonTest.dependencies {
implementation(kotlin("test"))
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
implementation("io.mockative:mockative:2.0.1")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.0")
implementation("io.kotest:kotest-framework-engine:5.8.0")
runtimeOnly("io.kotest:kotest-framework-api-jvm:5.8.0")
implementation("io.insert-koin:koin-test:$koinVersion")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.1")
implementation("io.ktor:ktor-client-content-negotiation:2.3.0")
implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.0")
}
androidMain.dependencies {
implementation("com.squareup.sqldelight:android-driver:1.5.4")
implementation("io.ktor:ktor-client-android:2.3.0")
implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
implementation("io.ktor:ktor-client-okhttp:2.3.0")
}
iosMain.dependencies {
implementation("com.squareup.sqldelight:native-driver:1.5.4")
implementation("io.ktor:ktor-client-ios:2.3.0")
}
}
}
// add support for kotlin extension function and sealed class to enum swift
kswift {
install(dev.icerock.moko.kswift.plugin.feature.SealedToSwiftEnumFeature)
install(dev.icerock.moko.kswift.plugin.feature.PlatformExtensionFunctionsFeature)
}
android {
compileSdk = 32
namespace = "id.Test.shared"
defaultConfig {
minSdk = 23
targetSdk = 32
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments["clearPackageData"] = "true"
testOptions {
execution = "ANDROIDX_TEST_ORCHESTRATOR"
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
dependencies {
androidTestImplementation("androidx.test
androidTestUtil("androidx.test:orchestrator:1.4.1")
debugImplementation("com.github.chuckerteam.chucker:library:3.5.2")
releaseImplementation("com.github.chuckerteam.chucker:library-no-op:3.5.2")
}
}
dependencies {
configurations
.filter { it.name.startsWith("ksp") && it.name.contains("Test") }
.forEach {
add(it.name, "io.mockative:mockative-processor:1.2.6")
}
}
sqldelight {
database("TestDB") {
packageName = "id.Test.shared.cache"
sourceFolders = listOf("sqldelight")
}
}
multiplatformResources {
resourcesPackage.set("id.test.shared")
resourcesClassName.set("id.test.shared")
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... mm-project
Мобильная версия