We collect some non-identifiable analytics data to help design and improve SKIE features. This is OPTIONAL. You can read more about what we're capturing and how to configure it here.
To install SKIE, you'll need to do the following:
1. Locate the KMP module where you are creating Xcode Frameworks.
build.gradle.kts in this module either applies the
kotlin("native.cocoapods") plugin or has a
framework block somewhere inside the
kotlin configuration block.
The plugin needs to be applied only in the modules that create Xcode Frameworks. Any code exported in that Framework will be instrumented by SKIE, no matter which Kotlin module it belongs to.
As a result, SKIE will also run on all exported dependencies. This is important to keep in mind, and you may want to use the configuration to change this behavior.
2. Add the SKIE Gradle plugin to the
build.gradle.kts of the module that builds the Xcode Framework:
id("co.touchlab.skie") version "0.6.1"
The SKIE plugin is currently deployed to Maven Central.
If you get errors about not finding the plugin, you'll need to add
mavenCentral() to your plugin repositories.
Gradle fails to resolve some SKIE artifacts sometimes and caches the 404 result. The problem seems to be related to Gradle's caching mechanism - it takes some time for all artifacts to propagate to all regional caches after we release a new version. When that happens, people can see weird errors thrown by Gradle. Either it won't be able to resolve a SKIE artifact, or it'll crash on ClassNotFoundException because it loaded a wrong .jar file.
To resolve the issue, users need to run
./gradlew dependencies --refresh-dependencies (the task shouldn't matter, it could be
If that doesn't work, users need to wait for their region's cache to refresh and then run the task with the
--refresh-dependencies flag again.
If the problem persists for over a day, please open an issue.
We're working with Gradle to alleviate the issue.
3. Are you integrating SKIE into an existing project? Be sure to read the migration documentation if you haven't done so already.