Publishing BoutiqueDB (SPI / GitHub)
Permanent rule: iOS + macOS
Public / SPI releases must include a multi-archTursoSDK.xcframework:
Never ship macOS-only binaries for SPI. See
AGENTS.md.
Checklist
-
LICENSE(MIT),NOTICE - Package icon (
Assets/BoutiqueDB.png,icon.png) -
.spi.yml— macos-xcodebuild + ios -
Package.swiftwithoutunsafeFlags(binaryTursoSDK) - Public repo BoutiqueDB-Swift
- Multi-arch xcframework (macOS + iOS device + Simulator)
- Stable engine binary
v0.2.1+ zip asset + checksum inPackage.swift - Production-beta package tag
v0.3.0-beta.1(reuses verified v0.2.1 binary) - SPI “Add a Package” OAuth (owner): https://swiftpackageindex.com/add-a-package
- GitHub Actions billing unlocked (hosted runners currently blocked on account)
Build binary
Vendor/TursoSDK.xcframework is gitignored. CI and releases attach/build the zip.
Consumer install
Tag + release
Prerelease tags reuse the already verified binary version declared inPackage.swift; the release workflow runs source, test, DocC, consumer, and iOS
gates before creating a GitHub prerelease. Stable tags rebuild and attach a new
full multi-architecture engine archive.
SPI
- Clean clone resolves (no local Vendor binary → URL binaryTarget).
- No
unsafeFlags. - https://swiftpackageindex.com/add-a-package →
https://github.com/tuliopc23/BoutiqueDB-Swift - Expect macOS + iOS platform badges after first index.
Verifying a release asset
Before tagging, confirm the publishedTursoSDK.xcframework.zip is multi-arch and
matches Package.swift:
arm64+x86_64, ios-arm64, ios-*-simulator.

