Skip to content

SKIE Analytics FileNotFoundException during iOS framework link #175

@edreyer

Description

@edreyer

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

  1. Enable SKIE in a KMP project (Compose Multiplatform iOS framework).
  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions