Repository navigation
Releases: AssetLib/sdk-swift
Release list
0.4.0-preview.1
- Adds tintable icons.
AssetRendering(.original,.template) andAssetReference(key:width:height:rendering:), defaulting to.original, so existing references and generated code compile unchanged.AssetReferenceCodable reads values withoutrenderingas original and omits it when original. - Decodes the optional signed
renderingfield on slots and variant cells. Null, non-string, or values not matching^[a-z][a-z0-9-]{0,31}$reject the manifest; a well-formed unknown value is kept. - A reference's rendering must equal the selected descriptor's (absent means original). Like a size mismatch, a mismatched or unknown descriptor is skipped without reading the cache or downloading, on the latest and on retained releases, so the result is matching older cached artwork or the bundled image. Other placements are unaffected.
- For a
.templatereference,AssetImageStore.image(for:fallback:)andartwork(for:…)apply.renderingMode(.template)to both remote and bundled images. - The catalog generator accepts
"rendering": "original" | "template"and emitsrendering: .templateonly for template placements; other catalogs generate byte-identical output. Any other value is an error. - Vendors the shared corpus with 15 new signed rendering manifests and 10 rendering resolution cases.
Validation: on October 9, 2026, swift test passed 57 tests across 6 suites on macOS (56 passed, the optional hosted test skipped), including all 115 signed manifest cases and the 10 rendering resolution cases, with no download on any mismatch. Template rendering of remote and bundled images was checked with ImageRenderer. All 5 code-generation tests and swift build -c release passed. No iOS simulator or device run is claimed.
0.3.1-preview.1
0.3.1-preview.1
SwiftPM exact version 0.3.1-preview.1, iOS 17+, macOS 14+, Swift 6, no third-party runtime dependencies. Public configurations from the hosted console are unaffected.
- Accepts configurations containing only a pinned key set. The existing non-optional
pinnedPublicKeyproperty contains its first member; manifests signed by any member remain trusted. - Codable encoding preserves the supplied single-pin field's presence, preventing a compatibility fallback from inflating set-only JSON past its byte limit. Explicit non-first single pins and the entire trust set survive round trips.
- Rejects explicit nulls in known configuration fields,
keyIdwithout an explicit single pin, andkeyIdswhose values, count, or order differ from the derived IDs. Duplicate pins, empty or oversized sets, invalid Ed25519 SPKI PEM, pins over 256 UTF-8 bytes, and JSON over 4096 bytes remain rejected. Unknown fields count toward the JSON byte limit. - Runs the generated shared public-configuration corpus, including signature checks for the second trusted key and an untrusted key.
Validation: on October 9, 2026, swift test passed 52 tests across 5 suites on macOS (the optional hosted test skips without a configuration), including 43 shared public-configuration cases, 39 associated signature expectations, and the 100 existing signed manifest cases. All 4 code-generation tests and swift build -c release passed. No iOS simulator or device run is claimed.
0.3.0-preview.1
0.3.0-preview.1
SwiftPM exact version 0.3.0-preview.1, iOS 17+, macOS 14+, Swift 6, no third-party runtime dependencies.
- Accepts a
stagingenvironment in the public configuration with the environment-scoped manifest path; verification keeps exact equality with the signed payload. - Validates the additive
variantSchemaVersion: 1extension: declared appearance and arm values, no duplicate coordinates, cell images checked like slot images, cell states ignored. Unknown keys remain ignored. - Resolves appearance and arm cells in the fixed order arm plus appearance, arm only, appearance only, then the legacy cell, never borrowing across arms;
ResolvedAssetreportsappearance,arm, andarmSource; cache entries key on the selected cell. - Adds an optional
decidecallback for the arm, evaluated outside the client gate with a bounded wait; invalid results resolve control and say why; the client re-resolves against current durable state afterwards. - Derives the storage namespace from origin, org, app, and environment only, with a one-time verified migration from the previous formula, so the replay floor and cache survive the legacy to environment URL switch and pinned key-set changes. Accepts a pinned key set.
AssetImageStorecarries an appearance and per-reference arm overrides.
Validation: 48 Swift tests in 5 suites on macOS against the shared corpus of 100 signed manifest cases and 18 resolution entries.
0.2.1-preview.1 — Localized artwork descriptions
Adds optional localized descriptions paired with the actual delivered image and its signed release. Description lookup uses an exact language tag, progressively less specific tags, then the explicit default. Cached historical artwork keeps its own description.
SwiftUI still receives native Image values. The new AssetArtwork snapshot and generated coastArtwork(locale:requireDescription:) helper let an informative usage keep bundled artwork when remote metadata is missing. Apps explicitly choose descriptive labels, decorative hiding, and control labels.
Validation: Swift tests and code generation, 82 shared signed contract cases, release build, generic iOS and Simulator compilation, and a macOS native accessibility-tree probe covering English/Thai descriptions, cached/offline artwork, disconnect, decorative hiding, and an action button. Exact source CI passed: https://github.com/AssetLib/sdk-swift/actions/runs/37729542543
This is a developer prerelease. Full VoiceOver listening and iPhone runtime acceptance remain unverified.
0.2.0-preview.1 — PNG and sized renditions
Adds signed PNG/WebP rendition selection by explicit target pixel dimensions. The SDK validates the rendition contract, content hashes, decoded type and exact pixel size; malformed or unavailable candidates fall back to the next verified candidate, legacy WebP, cached history, then the bundled image.
Existing schema-1 manifests and caches remain supported. SVG sources are prepared by Assetlib into native raster fallbacks; this release does not add native SVG rendering. SwiftUI still receives ordinary Image values through the observable image store.
Validation: 17 executed Swift tests, 65 shared signed contract cases, four shared size selections, PNG decoding and offline restart, code generation, and release build. Generic iOS and Simulator demo compilation passed; manual iPhone UI acceptance is separate.
Swift SDK 0.1.0-preview.2
Recommended Swift SDK developer preview. Install exact Swift package version 0.1.0-preview.2.
Fixes Swift 6 actor isolation in generated nested native-image accessors. The checked-in generated example is now a real SwiftPM compile target, so CI compiles it alongside the SDK. The native iOS demo also passed a generic device build with this version's source.
Includes native SwiftUI Image accessors, signed app-scoped releases, bounded HTTPS downloads, verified disk caching, durable sequence checks, and bundled fallbacks. iOS 17+, macOS 14+, Swift 6; no third-party runtime dependencies; MIT licensed.
SDK tests, offline code-generation checks, and native generic-device compilation passed locally. The unchanged delivery core separately passed a hosted release-3 test with three real ImageIO WebP decodes and offline restart from verified cache. A device build is not simulator or iPhone UI execution.
See the README and SwiftUI demo. This preview handles still WebP artwork; Figma, analytics, experiments, push delivery, and signing-key rotation are not included. It is not an App Store approval or production-readiness claim.
Swift SDK 0.1.0-preview.1 — superseded
Superseded by 0.1.0-preview.2. Use that version: it fixes Swift 6 actor isolation in generated nested Image accessors and compiles the generated example in CI. This tag is retained unchanged for reproducibility.
First public native Swift developer preview for Assetlib.
- Native SwiftUI
Imageaccessors generated from a checked-in catalog, backed by an observable image store. - Pinned Ed25519 releases, scoped HTTPS delivery, bounded downloads, SHA-256 validation, durable sequence checks, verified cache, and bundled fallback.
- iOS 17+, macOS 14+, Swift 6; no third-party runtime dependencies; MIT licensed.
- Includes privacy metadata, deterministic protocol fixtures, code-generation checks, and CI.
Install the AssetLib Swift package at exact version 0.1.0-preview.1. See the README and the companion SwiftUI demo.
Local validation passed: ten SDK tests covering 43 shared manifest cases, two code-generation tests, and a release build. A separate read-only hosted test verified release 3, decoded all three starter WebPs with ImageIO, and confirmed a restarted offline client used verified cache. This is macOS SDK evidence, not iPhone or simulator UI acceptance.
This prerelease handles still WebP artwork. Figma, analytics, experiments, push delivery, and signing-key rotation are not included. It is not an App Store approval or production-readiness claim.