uniffi-packaging-versioning

Installation
SKILL.md

UniFFI Packaging and Versioning

Turn one UniFFI crate into Android and Apple artifacts. Keep the checked-in generated bindings and the compiled library at the same revision, so that a bindings/library mismatch never reaches a device.

Verify with these checks

Claim Check Run it when A pass does not prove
Checked-in bindings match the Rust source Regeneration script in --check mode, in the Rust CI lane Every change to the FFI crate or to the uniffi version That a prebuilt artifact on a machine is current
The exported API is the same on every target Generate from each shipping target library and diff against the checked-in files Packaging, and after a cfg change in the FFI crate Run-time behavior
The packaged library loads and passes its checksums Kotlin: uniffiEnsureInitialized(), then one generated-binding call; Swift: one generated-binding call. Run it from a consumer on each shipping Android ABI family and on an iOS simulator Before release, and after every uniffi bump Another ABI, OS version, or artifact
The release candidate works as shipped Final-artifact proof and release closure in references/release-proof.md Once per release candidate Anything about a rebuilt artifact

A host cargo check or cargo test proves none of these claims.

Failure triage

Installs
9
GitHub Stars
7
First Seen
Aug 19, 2026