Installation
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.
Usually, the 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:
plugins {
id("co.touchlab.skie") version "0.9.2"
}
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.
Example
pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
}
}
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 model
or assemble
too).
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.
4. That's it! Go ahead and try building your Xcode Framework, or read about SKIE features and how to customize them.