Hi all, I have a problem when build iOS project wi...
# compose-ios
v
Hi all, I have a problem when build iOS project with compose enable. Which need stay correct versions? My settings: 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.
🧵 3
👍 1
Copy code
lugins {
    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")
a
try adding isStatic = true in framework block of cocoapods :
Copy code
framework {
    baseName = "frameworkName"
    isStatic = true
}
v
Unfortunately it didn’t work( The error persists
👀 1
n
What if you switch to Kotlin 1.8.20?
v
Yes it build correct if I switch to Kotlin 1.8.20 and change version kotlinCompilerPlugin.set to 1.4.5 + need stay framework flag isStatic = true and correction iOS build settings to common framework to “Do Not Embed”
👍 1
209 Views