About two weeks ago, I had to switch to a new machine, and I immediately felt the challenges that would come with it. Just when I thought the transition would be tough, my machine updated to Tahoe, which sent me into a panic mode. How would I manage to work in the coming days?
Fortunately, things fell into place, and I was able to successfully update my environment.
What have I done?
First, install xcodes to switch between Xcode versions. I have installed Xcode 26.0.0.
Then updated the following libs:
- Kotline Multiplatform plugin: for that, I have followed the version compatibility from this page.
- Android sourceset conventions: the first error that I need to fix
build.gradle.kts:123:13: 'fun dependencies(configure: KotlinDependencies.() -> Unit): Unit' can't be called in this context by implicit receiver. Use the explicit one if necessary
And I just need to update according to the conventions.
Replace:
kotlin {
androidTarget()
sourceSets {
androidTarget.dependencies {}
}
}
by:
kotlin {
androidTarget()
sourceSets {
androidMain.dependencies {}
}
}
- ππMy luckππ was on the fact that SKIE is now compatible with Kotlin versions from 2.0.0 up to 2.2.21.
- KSP update
Last but not least, I needed to fix the error:
java.lang.NoClassDefFoundError: org/jetbrains/kotlin/konan/target/KonanTarget$IOS_ARM32
I follow this video
Nothing!!!!
I look up on the edge of the internet. And... Nothing!!!!
Until Gemini saw the error and pointed in the right direction
konantarget_iosarm32is an identifier for the 32-bit ARM architecture target for iOS devices used in the Kotlin/Native compiler and Kotlin Multiplatform projects. It allows developers to compile Kotlin code into native binaries that can run on older 32-bit iOS devices.
Ok! But what does that mean?
The
iosArm32target is now deprecated and unsupported for new iOS app submissions
Ahh! Ok! But How can I solve it?
The error is caused by the removal of the
iosArm32target in newer Kotlin versions (it was deprecated in 1.8.20 and removed in 1.9.20). Although you have updated your source sets, an old reference to the 32-bit target likely remains in your Gradle build scripts or in a cached dependency.
And I cleaned and deleted caches (Just to be sure)!
./gradlew clean
rm -rf .gradle/caches
But nothing! The next step was to check the dependencies.
The error occurring at generateMRiosArm64Main points to an issue with the Compose Multiplatform library or the moko-resources library (if you are using it) trying to generate resources for the now-removed iosArm32 target during the build process for iosArm64.
This confirms that even though your source sets are correct, the resource generation plugin is implicitly attempting to configure all possible iOS targets.
Moko-resources... BINGO
They had fixed a bug in the version that supported the new Kotlin release. Issue
Gemini promtp:
# User: konantarget_iosarm32
`konantarget_iosarm32` is an identifier for the **32-bit ARM architecture target for iOS devices** used in the **Kotlin/Native** compiler and Kotlin Multiplatform projects. It allows developers to compile Kotlin code into native binaries that can run on older 32-bit iOS devices.
(...)
# User: I have updatde kotlin version to 2.2.21 and now can not even compile the project, since I have that error ok arm 32 and my sourcesets are iosArm64 and iosSimulatorArm64
The error is caused by the **removal of the `iosArm32` target** in newer Kotlin versions (it was deprecated in 1.8.20 and removed in 1.9.20). Although you have updated your source sets, an old reference to the 32-bit target likely remains in your Gradle build scripts or in a cached dependency.
(...)
User: It fails here: generateMRiosArm64Main
The error occurring at generateMRiosArm64Main points to an issue with the Compose Multiplatform library or the moko-resources library (if you are using it) trying to generate resources for the now-removed iosArm32 target during the build process for iosArm64.
This confirms that even though your source sets are correct, the resource generation plugin is implicitly attempting to configure all possible iOS targets.
And finally, it worked. And so far so good. But I will continue to update this article if necessary.
However, I have done all this, my IntelliJ continues to complain
[β] Operating System
[β] Java
[β] Android SDK
[β] Xcode
[β] Gradle Project
Recommendations:
! macOS 26.1+ is not yet supported
This was a joint task with Francisco Cunha, who also helped write this article
Top comments (0)