Swift Markdown Kit · DOCS

Events & Licensing

Events & Licensing

Events

EventWhen it fires
.readyRenderer loaded; queued commands begin running.
.rendered(height:)Exactly twice per content cycle: first paint and the final flush.
.heightChanged(_)Height changes in between — streaming flushes, image loads, Dynamic Type. Debounced while streaming.
.viewportChanged(_)Scroll position and a near-bottom flag, for native smart-scroll controls.
.messageAction(_)The user tapped copy, retry or edit on a whole message.
.action(_)Link, image, task and extension taps, plus code-copy results.
.error(_)A structured failure carrying a stable code.

License error codes

CodeMeaning
licenseMissingDevice build with no .smklicense in Copy Bundle Resources.
licenseInvalidEnvelope is not v2, signature is wrong, payload is malformed, or the licenseType is unsupported.
licenseUnauthorizedBundleIdThe license does not cover Bundle.main.bundleIdentifier.
expiredTrialLicenseTrial license past its validUntil.
sdkReleaseNotCoveredProduction license whose updatesUntil predates this SDK build. Renew to upgrade.
releaseMetadataMissingThe framework has no release timestamp — the build itself is wrong.

Licensing model

Licenses are Ed25519-signed files verified offline, on-device. Nothing is sent to any server.

  • Simulator — no license. Renders unconditionally.
  • Device, trial — runs for 30 days from issuance, then stops.
  • Device, production — runs any SDK build whose release date is not later than the license's updatesUntil. Device time is never checked, so an app you have already shipped does not stop working when the update window closes. Only SDK builds released after it require a renewal.

Need a trial license, or stuck on integration? Get in touch. Purchase and renewal terms are on the pricing page.