Swift Markdown Kit · DOCS

Installation

Installation

1. Get the files

After purchase, your account has the SDK archive ready to download. The license is one step further: it does not exist until you bind it.

  1. Open the Team ID licenses panel.
  2. Enter your Apple Team ID — the ten-character identifier from your Apple Developer account, e.g. ABCDE12345.
  3. Confirm. The signed .smklicense is generated and downloadable immediately.

Check the Team ID before confirming. A license is a signed, offline- validated file, so it cannot be recalled once issued — which means the binding cannot be changed by yourself afterwards. If you bind the wrong one, contact support.

Both files stay re-downloadable, and the license does not need re-issuing when you upgrade within your update window.

2. Add the framework

  1. Unzip the archive and drag SwiftMarkdownKit.xcframework into your Xcode project.
  2. Select your app target.
  3. Under General › Frameworks, Libraries, and Embedded Content, set the framework to Embed & Sign.

The framework is built with library evolution enabled, so it links against any Swift compiler version from Xcode 16 onwards without being rebuilt.

3. Add the license

Drag the .smklicense file into the project and confirm it appears under Build Phases › Copy Bundle Resources for the app target.

There is no activation code and no SDK key to paste into your source. The license is a signed file the SDK reads from your bundle, validated entirely on-device — it never contacts a server, so your app is unaffected by our infrastructure.

4. Import and render

import SwiftUI
import SwiftMarkdownKit

struct ReadmeView: View {
    var body: some View {
        MarkdownRenderView(markdown: "# Hello\n\nIt **works**.")
    }
}

The module is SwiftMarkdownKit regardless of how you added it.

Consuming it through Swift Package Manager

If your project prefers packages over embedded frameworks, wrap the downloaded xcframework in a local package:

// swift-tools-version: 5.9
import PackageDescription

let package = Package(
    name: "SwiftMarkdownKitBinary",
    platforms: [.iOS(.v17)],
    products: [
        .library(name: "SwiftMarkdownKit", targets: ["SwiftMarkdownKit"])
    ],
    targets: [
        .binaryTarget(
            name: "SwiftMarkdownKit",
            path: "SwiftMarkdownKit.xcframework"
        )
    ]
)

Add that folder to your workspace as a local package and depend on the SwiftMarkdownKit product. A local binary target needs no checksum, and pins the exact binary sitting in your repository.

Verifying the install

Print the diagnostics once during development:

print(MarkdownRenderKit.version)
print(MarkdownRenderKit.licenseDiagnostics())

If the license was picked up, licensed …… true appears on the first line. If not, the same output says exactly why — see Licensing.

Rendering works either way. An unlicensed build is badged, never broken.