From f873e2cc745d2e9a0685c8a01c06f5b420bae011 Mon Sep 17 00:00:00 2001 From: bmaum Date: Wed, 24 Jun 2026 15:02:17 -0400 Subject: [PATCH 1/2] =?UTF-8?q?Bump=20Kotlin=202.1.0=20=E2=86=92=202.4.0?= =?UTF-8?q?=20(+=20KSP=202.3.9,=20Compose=201.11.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Recompiles the published iOS klibs against Kotlin 2.4 so consumers on Kotlin 2.4 no longer hit `IrLinkageError: No class found for symbol 'io.github.openflocon.flocon/Flocon|null[0]'` on app launch. Kotlin/Native klib ABI is not stable across major Kotlin versions; older klibs link at compile time but fail singleton resolution at runtime when the host app is on a newer Kotlin major. Bumping Kotlin in the build recompiles all `*-iosarm64`, `*-iossimulatorarm64`, and `*-iosx64` artifacts and resolves the linkage error. Fixes #528. Verified locally: - `:flocon-base:publishToMavenLocal` ✓ - `:flocon:publishToMavenLocal` ✓ - `:ktor-interceptor:publishToMavenLocal` ✓ - `:flocon-no-op:publishToMavenLocal` ✓ - `:ktor-interceptor-no-op:publishToMavenLocal` ✓ All produce iosArm64 / iosSimulatorArm64 / iosX64 klibs with no source changes. Only output is warnings about beta `expect/actual` classes and DSL-marker-on-top-level-fn — both pre-existing and unrelated to the bump. --- FloconAndroid/gradle/libs.versions.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FloconAndroid/gradle/libs.versions.toml b/FloconAndroid/gradle/libs.versions.toml index 32ea39e80..93ff42501 100644 --- a/FloconAndroid/gradle/libs.versions.toml +++ b/FloconAndroid/gradle/libs.versions.toml @@ -2,9 +2,9 @@ agp = "8.11.0-rc02" apollo = "4.0.0" coilCompose = "3.2.0" -compose = "1.9.0" +compose = "1.11.0" datastorePreferences = "1.1.7" -kotlin = "2.1.0" +kotlin = "2.4.0" mavenPublish = "0.34.0" coreKtx = "1.16.0" junit = "4.13.2" @@ -26,7 +26,7 @@ grpc = "1.70.0" protobufPlugin = "0.9.5" grpcKotlin = "1.4.3" protobuf = "4.26.1" -ksp = "2.1.0-1.0.29" +ksp = "2.3.9" processPhoenix = "3.0.0" sqlite = "2.5.2" sqliteJdbc = "3.50.3.0" From 618b70e703d2d74cdb7b842e1c763f98563ab1cc Mon Sep 17 00:00:00 2001 From: bmaum Date: Thu, 25 Jun 2026 10:17:35 -0400 Subject: [PATCH 2/2] sample-multiplatform: drop iosX64 to track Compose Multiplatform 1.11 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Compose Multiplatform 1.11 no longer publishes an iosX64 (Intel Mac simulator) variant — the sample's iosX64CompilationDependenciesMetadata configuration can't resolve compose.runtime/foundation/ui for that target and the build fails with "No matching variant". Drop the iosX64 target from the sample-multiplatform module to track upstream. Apple-silicon devs use iosSimulatorArm64; real devices use iosArm64. The publishing modules (flocon-base, flocon, ktor-interceptor, *-no-op) still publish all three iOS slices because they don't depend on Compose; only the sample needed adjusting. --- FloconAndroid/sample-multiplatform/build.gradle.kts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/FloconAndroid/sample-multiplatform/build.gradle.kts b/FloconAndroid/sample-multiplatform/build.gradle.kts index e2aa52888..98ed2fdb9 100644 --- a/FloconAndroid/sample-multiplatform/build.gradle.kts +++ b/FloconAndroid/sample-multiplatform/build.gradle.kts @@ -19,8 +19,10 @@ kotlin { jvm("desktop") + // Compose Multiplatform 1.11 dropped the iosX64 (Intel Mac simulator) variant, so the + // sample's iosX64CompilationDependenciesMetadata can no longer resolve compose.runtime + // for that target. Apple-silicon devs use iosSimulatorArm64; real devices use iosArm64. listOf( - iosX64(), iosArm64(), iosSimulatorArm64() ).forEach { iosTarget -> @@ -85,12 +87,10 @@ kotlin { } } - val iosX64Main by getting val iosArm64Main by getting val iosSimulatorArm64Main by getting val iosMain by creating { dependsOn(commonMain) - iosX64Main.dependsOn(this) iosArm64Main.dependsOn(this) iosSimulatorArm64Main.dependsOn(this) dependencies { @@ -159,7 +159,6 @@ dependencies { "kspAndroid", "kspDesktop", "kspIosSimulatorArm64", - "kspIosX64", "kspIosArm64" ).forEach { add(it, libs.androidx.room.compiler)