Prerequisites
Kotlin side (library author)
JDK 17+
Gradle, via the included wrapper (
./gradlew).NET SDK 8.0+, only if you bind a NuGet package into Kotlin (
nuget { dependencies { dependency(...) { bind { ... } } } }). Publishing needs no .NET SDK:packNugetwrites the.nupkgitself.
C# side (consumer)
.NET SDK 8.0+
Bindings are pre-generated at Kotlin compile time via KSP, so the consumer needs no additional tooling.
Compatibility
kotlin-native-nuget | Kotlin | KSP | Gradle | JDK | .NET |
|---|---|---|---|---|---|
|
|
|
| 17+ |
|
|
|
|
| 17+ |
|
KSP is pinned to its Kotlin version, so bumping Kotlin without bumping the plugin is not supported.
Supported native targets
The plugin maps Kotlin/Native targets to NuGet runtime identifiers (RIDs), used for the runtimes/{rid}/native/ package layout:
Kotlin target | RID | Exercised in CI |
|---|---|---|
|
| Yes |
|
| Yes |
|
| No |
|
| No |
|
| No |
A target outside this table is skipped with a warning, and if no configured target is supported, the plugin skips the whole project for that build. See Getting started for target configuration.