Vladimir Malykhin
07/22/2023, 2:12 PMVladimir Malykhin
07/22/2023, 3:50 PMlugins {
kotlin("multiplatform")
id("kotlinx-serialization")
id("com.android.library")
id("com.squareup.sqldelight")
id("org.jetbrains.compose") version "1.4.1"
}
repositories{
maven ("<https://dl.bintray.com/korlibs/korlibs>")
google()
jcenter()
mavenLocal()
maven("<https://oss.sonatype.org/content/repositories/snapshots>")
maven("<https://maven.pkg.jetbrains.space/public/p/compose/dev>")
}
kotlin {
android()
ios {
binaries {
framework {
baseName = "commonModule"
}
}
}
// Block from <https://github.com/cashapp/sqldelight/issues/2044#issuecomment-721299517>.
val onPhone = System.getenv("SDK_NAME")?.startsWith("iphoneos") ?: false
if (onPhone) {
iosArm64("ios")
} else {
iosX64("ios")
}
sourceSets {
val commonMain by getting {
dependencies {
implementation("com.squareup.sqldelight:runtime:1.5.5")
implementation("com.squareup.sqldelight:coroutines-extensions:1.5.5")
implementation("io.ktor:ktor-client-core:2.3.2")
implementation("io.ktor:ktor-client-logging:2.3.2")
implementation("io.ktor:ktor-client-content-negotiation:2.3.2")
implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.2")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1")
implementation("commons-codec:commons-codec:1.15")
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.5.1")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
api("dev.icerock.moko:mvvm-core:0.12.0") // only ViewModel, EventsDispatcher, Dispatchers.UI
api("dev.icerock.moko:mvvm-livedata:0.12.0") // api mvvm-core, LiveData and extensions
api("dev.icerock.moko:mvvm-state:0.12.0") // api mvvm-livedata, ResourceState class and extensions
api("dev.icerock.moko:mvvm-livedata-resources:0.12.0") // api mvvm-core, moko-resources, extensions for LiveData with moko-resources
implementation(compose.ui)
implementation(compose.foundation)
implementation(compose.material)
@OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
implementation(compose.components.resources)
}
}
val commonTest by getting {
dependencies {
implementation(kotlin("test-common"))
implementation(kotlin("test-annotations-common"))
}
}
val androidMain by getting {
dependencies {
implementation( "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1")
implementation("io.ktor:ktor-client-android:2.3.2")
implementation("com.squareup.sqldelight:android-driver:1.5.5")
api("dev.icerock.moko:mvvm-livedata-material:0.12.0") // api mvvm-livedata, Material library android extensions
api("dev.icerock.moko:mvvm-livedata-glide:0.12.0") // api mvvm-livedata, Glide library android extensions
api("dev.icerock.moko:mvvm-livedata-swiperefresh:0.12.0") // api mvvm-livedata, SwipeRefreshLayout library android extensions
api("dev.icerock.moko:mvvm-databinding:0.12.0") // api mvvm-livedata, DataBinding support for Android
api("dev.icerock.moko:mvvm-viewbinding:0.12.0") // api mvvm-livedata, ViewBinding support for Android
api("androidx.activity:activity-compose:1.6.1")
api("androidx.appcompat:appcompat:1.6.1")
api("androidx.core:core-ktx:1.9.0")
}
}
val androidTest by getting {
dependencies {
implementation(kotlin("test-junit"))
implementation("junit:junit:4.13.2")
}
}
val iosMain by getting {
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-native:1.3.5")
implementation("io.ktor:ktor-client-darwin:2.3.2")
implementation("com.squareup.sqldelight:native-driver:1.5.5")
}
}
val iosTest by getting
}
// export correct artifact to use all classes of library directly from Swift
targets.withType(org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget::class.java).all {
binaries.withType(org.jetbrains.kotlin.gradle.plugin.mpp.Framework::class.java).all {
export("dev.icerock.moko:mvvm-core:0.12.0")
export("dev.icerock.moko:mvvm-livedata:0.12.0")
export("dev.icerock.moko:mvvm-livedata-resources:0.12.0")
export("dev.icerock.moko:mvvm-state:0.12.0")
}
}
}
android {
compileSdkVersion(33)
sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml")
defaultConfig {
minSdkVersion(24)
targetSdkVersion(33)
}
buildToolsVersion = "31.0.0"
}
sqldelight {
database("WowDatabase") {
packageName = "db"
version = 6
}
}
compose {
kotlinCompilerPlugin.set("1.4.5")
kotlinCompilerPluginArgs.add("suppressKotlinVersionCompatibilityCheck=1.9.0")
}
Kotlin Version 1.8.10
Error when iOS compile
e: Module “org.jetbrains.compose.ui:ui (org.jetbrains.compose.ui:ui-uikitarm64)” has a reference to symbol platform.UIKit/UIView.setFrame|-3257539694696545905[100]. Neither the module itself nor its dependencies contain such declaration.
This could happen if the required dependency is missing in the project. Or if there is a dependency of “org.jetbrains.compose.ui:ui (org.jetbrains.compose.ui:ui-uikitarm64)” that has a different version in the project than the version that “org.jetbrains.compose.ui:ui (org.jetbrains.compose.ui:ui-uikitarm64): 1.4.1" was initially compiled with. Please check that the project configuration is correct and has consistent versions of all required dependencies.
The list of “org.jetbrains.compose.ui:ui (org.jetbrains.compose.ui:ui-uikitarm64): 1.4.1” dependencies that may lead to conflicts:
1. “org.jetbrains.compose.ui:ui-geometry (org.jetbrains.compose.ui:ui-geometry-uikitarm64): 1.4.1" (was initially compiled with “org.jetbrains.compose.ui:ui-geometry (org.jetbrains.compose.ui:ui-geometry-uikitarm64)“)
2. “stdlib: 1.8.10” (was initially compiled with “stdlib: 1.8.20")
3. “org.jetbrains.kotlin.native.platform.CFCGTypes: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CFCGTypes: 1.8.20")
4. “org.jetbrains.kotlin.native.platform.CloudKit: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CloudKit: 1.8.20")
5. “org.jetbrains.kotlin.native.platform.CoreFoundation: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CoreFoundation: 1.8.20")
6. “org.jetbrains.kotlin.native.platform.CoreFoundationBase: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CoreFoundationBase: 1.8.20")
7. “org.jetbrains.kotlin.native.platform.CoreGraphics: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CoreGraphics: 1.8.20")
8. “org.jetbrains.kotlin.native.platform.CoreImage: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CoreImage: 1.8.20")
9. “org.jetbrains.kotlin.native.platform.CoreLocation: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CoreLocation: 1.8.20")
10. “org.jetbrains.kotlin.native.platform.CoreText: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CoreText: 1.8.20")
11. “org.jetbrains.kotlin.native.platform.CoreVideo: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.CoreVideo: 1.8.20")
12. “org.jetbrains.kotlin.native.platform.EAGL: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.EAGL: 1.8.20")
13. “org.jetbrains.kotlin.native.platform.Foundation: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.Foundation: 1.8.20")
14. “org.jetbrains.kotlin.native.platform.IOSurface: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.IOSurface: 1.8.20")
15. “org.jetbrains.kotlin.native.platform.ImageIO: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.ImageIO: 1.8.20")
16. “org.jetbrains.kotlin.native.platform.Intents: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.Intents: 1.8.20")
17. “org.jetbrains.kotlin.native.platform.Metal: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.Metal: 1.8.20")
18. “org.jetbrains.kotlin.native.platform.OpenGLESCommon: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.OpenGLESCommon: 1.8.20")
19. “org.jetbrains.kotlin.native.platform.QuartzCore: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.QuartzCore: 1.8.20")
20. “org.jetbrains.kotlin.native.platform.Security: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.Security: 1.8.20")
21. “org.jetbrains.kotlin.native.platform.UIKit: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.UIKit: 1.8.20")
22. “org.jetbrains.kotlin.native.platform.UserNotifications: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.UserNotifications: 1.8.20")
23. “org.jetbrains.kotlin.native.platform.darwin: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.darwin: 1.8.20")
24. “org.jetbrains.kotlin.native.platform.posix: 1.8.10” (was initially compiled with “org.jetbrains.kotlin.native.platform.posix: 1.8.20")
25. “org.jetbrains.kotlinkotlin stdlib jdk7 1.8.20” (a dependency of the library with unknown version or versions mismatch: “org.jetbrains.kotlin:kotlin-stdlib-jdk7")
26. “org.jetbrains.kotlinkotlin stdlib jdk8 1.8.20” (a dependency of the library with unknown version or versions mismatch: “org.jetbrains.kotlin:kotlin-stdlib-jdk8")
27. “org.jetbrains.kotlinx:atomicfu (org.jetbrains.kotlinx:atomicfu-iosarm64): 0.20.2” (was initially compiled with “org.jetbrains.kotlinx:atomicfu (org.jetbrains.kotlinx:atomicfu-iosarm64): 0.17.0")
28. “org.jetbrains.kotlinx:kotlinx-coroutines-core (org.jetbrains.kotlinx:kotlinx-coroutines-core-iosarm64): 1.7.1” (was initially compiled with “org.jetbrains.kotlinx:kotlinx-coroutines-core (org.jetbrains.kotlinx:kotlinx-coroutines-core-iosarm64): 1.6.4")ankur2037
07/23/2023, 12:31 PMframework {
baseName = "frameworkName"
isStatic = true
}
Vladimir Malykhin
07/23/2023, 1:41 PMNikita Lipsky
07/24/2023, 8:13 AMVladimir Malykhin
07/24/2023, 9:35 AM