Questions:
What is the problem?
Summary: Building the iOS framework fails with a FileNotFoundException from the SKIE analytics collector because the analytics output directory does not exist. This happens during linkDebugFrameworkIosArm64.
Environment
- OS: macOS (version: Tahoe 26.2)
- Kotlin: 2.3.0
- SKIE: 0.10.9
- Compose Multiplatform: 1.9.3
- Gradle: 8.14.3
- KMP: Kotlin Multiplatform +
com.android.application in the same module
Reproduction
- Enable SKIE in a KMP project (Compose Multiplatform iOS framework).
- Run:
./gradlew :composeApp:linkDebugFrameworkIosArm64
Expected
The framework links successfully, or SKIE creates the analytics output directory before writing.
Actual
Build fails with:
e: java.io.FileNotFoundException: /Users/foo/dev/myApp/app/composeApp/build/skie/binaries/debugFramework/DEBUG/iosArm64/analytics/modules.json (No such file or directory)
at java.base/java.io.FileOutputStream.open0(Native Method)
...
at co.touchlab.skie.plugin.analytics.AnalyticsCollector.produceAndSave(AnalyticsCollector.kt:42)
Notes / Workaround
Disabling analytics in composeApp/build.gradle.kts unblocks the build:
skie {
analytics {
enabled.set(false)
disableUpload.set(true)
}
}
Additional Context
The failure happens before any framework is produced, and appears to be a missing directory creation for the analytics output path.
Questions:
What is the problem?
Summary: Building the iOS framework fails with a FileNotFoundException from the SKIE analytics collector because the analytics output directory does not exist. This happens during linkDebugFrameworkIosArm64.
Environment
com.android.applicationin the same moduleReproduction
Expected
The framework links successfully, or SKIE creates the analytics output directory before writing.
Actual
Build fails with:
Notes / Workaround
Disabling analytics in
composeApp/build.gradle.ktsunblocks the build:Additional Context
The failure happens before any framework is produced, and appears to be a missing directory creation for the analytics output path.