Publishing a KMP library commits you to every target you listed
Dropping a target in a minor release breaks consumers at resolution time.
We use Google Analytics to see which pages help people. No ads, no profiles. Privacy Policy
15 posts
Dropping a target in a minor release breaks consumers at resolution time.
Copy-pasted build config drifts silently per module. A convention plugin makes the shared part shared.
Gradle metadata decides which variant each target gets. A library with no native artifact fails at link, not at resolution.
A processor sees one compilation at a time. Generating into commonMain is a race you win by accident.
Declared versions are requests, not guarantees. Resolution picks the highest.
Metadata, klibs and platform artifacts resolve through different Gradle variants.
Cache keys for native compilation include the toolchain, so they rarely hit.
Each channel constrains your publishing pipeline differently.
A Kotlin bump without the matching plugin fails at a position no trace explains.
A task capturing Project at execution time disables it for the whole build.
Shrinking runs on one target, so a reflection path ships broken there.
A simulator-only framework works on your machine and fails on the device, and the error names a missing architecture rather than the packaging decision that caused it.