Publishing a Kotlin Multiplatform library to Maven Central is more involved than a standard JVM project. Different Kotlin targets require different host OS environments to compile: iOS, macOS, and Apple Silicon targets require macOS; Windows targets require Windows; Linux and JVM/JS targets run on Linux.
Problem it solves
Most CI/CD tutorials assume a single build environment. KMP library authors need a matrix build strategy — typically three separate jobs — to produce artifacts for all supported platforms, then merge and publish them in a coordinated way.
Approach
Using GitHub Actions with a matrix of Linux, macOS, and Windows runners. The reference implementation is redux-kotlin, which publishes a full KMP library to Maven Central.
Apple App Store considerations
Kotlin Multiplatform takes a native-first approach: shared code covers logic, networking, and models, while each platform retains fully native UI. This sidesteps Apple’s concern (articulated by Steve Jobs regarding Adobe Flash) about cross-platform tools “dumbing down” the lowest common denominator — KMP doesn’t touch UIKit or SwiftUI, so App Store submissions remain standard native apps.
Status
Reference implementation in production via ReduxKotlin. Patterns documented in blog posts.