Skip to content

frankois944/spm4Kmp

Repository files navigation

spmForKmp logo

The Swift Package Manager for Kotlin multiplatform Plugin

Gradle Plugin Portal Version build&tests Coverage Quality Gate Status GitHub License

The Swift Package Manager for Kotlin Multiplatform Plugin, aka spmForKmp Gradle Plugin, is an alternative of the dying CocoaPods Plugin used by KMP cocoapods plugin.

It will help you to integrate Swift Package and simplify communication between Swift/Kotlin Multiplatform projects targeting the Apple platform.

You can also easily use your own Swift code to your Kotlin's Apple sourceSet!

The plugin uses the embedded Swift Package Manager, so no third-party dependency is needed, and it's less intrusive.

QuickStart

Gradle Plugin

plugins {
    id("org.jetbrains.kotlin.multiplatform")
    id("io.github.frankois944.spmForKmp") version "[version]"
}

Gradle Properties

kotlin.mpp.enableCInteropCommonization=true

Initial Configuration

kotlin {
    listOf(
        iosArm64(),
        iosSimulatorArm64()
        // and more Apple targets...
    ).forEach { target ->
        // `cinteropName` is recommended when using a list of native target
        // Or when you want to keep the compatibility with the legacy way (cf: [cinteropName])
        // If not set, It will take the name of the current Target
        target.swiftPackageConfig(cinteropName = "[cinteropName]") {
            // create a new directory at `src/swift/[cinteropName]`
        }
    }
}

⭐️ Support My Project ⭐️

If you find this project useful, please consider giving it a star!

GitHub stars

ko-fi

Star History

Star History Chart


For additional help or detailed documentation, refer to the official repository or contact the plugin maintainers. Happy coding! 🎉

Sponsor this project

Contributors