Blog

LicenseKit 0.3 is out

Nov 8, 2022 releases

LicenseKit 0.3 is out with a few new features, like a new proxy service and a free license that lets you use LicenseKit for free.

Free license

If you use “FREE” as license key when creating a license engine, you will register a free license that is capped to a small number of local or file-based licenses.

let engine = try LicenseEngine(licenseKey: "FREE") { license in
    // Set up a license service here 
}

This makes it possible to use LicenseKit for free, for as many apps and libraries as you need, until you need more licenses or more powerful features.

License service proxy

There’s a new LicenseServiceProxy that can be used to combine multiple license services, for instance to handle local, file-based and remote licenses with a single service.

let engine = try LicenseEngine(licenseKey: "your-license-key") { license in
    LicenseServiceProxy(
        services: [
            CsvLicenseService(
                license: license,
                fileName: "licenses",
                fileExtension: "csv"
            ) { rows in
                rows.map {
                    License(licenseKey: row[0])
                }
            },
            LocalLicenseService(
                license: license,
                licenses: [
                    License(licenseKey: "license-key-1"),
                    License(licenseKey: "license-key-2")
                ]
            )
        ]
    )
}

In the code above, we create a proxy that first tries to find a license in a csv file. If this doesn’t work, it will then try to find a match in a hard-coded set of licenses. If both fails, it will throw an error.

Download

LicenseKit 0.3 can be fetched from GitHub and licenses purchased from Gumroad.