LemonSqueezyLicense

一种简单直观的在 Swift 中与 Lemon Squeezy License API 交互的方式。

概述

LemonSqueezyLicense 包提供了一种简单直观的方式,将 Lemon Squeezy 的许可系统 集成到您的 Swift 应用程序中。它允许您执行诸如激活、停用和验证许可证密钥的关键操作。

安装

您可以使用 Swift Package Manager 将 LemonSqueezyLicense 作为依赖项添加到您的项目中,方法是将其添加到 Package.swift 的 dependencies 值中。

dependencies: [
    .package(url: "https://github.com/kevinhermawan/swift-lemon-squeezy-license.git", .upToNextMajor(from: "1.0.0"))
],
targets: [
    .target(
        /// ...
        dependencies: [.product(name: "LemonSqueezyLicense", package: "swift-lemon-squeezy-license")])
]

或者,在 Xcode 中

  1. 在 Xcode 中打开您的项目。
  2. 点击 File -> Swift Packages -> Add Package Dependency...
  3. 输入仓库 URL:https://github.com/kevinhermawan/swift-lemon-squeezy-license.git
  4. 选择您要添加的版本。 您可能想添加最新版本。
  5. 点击 Add Package

文档

您可以在这里找到文档:https://kevinhermawan.github.io/swift-lemon-squeezy-license/documentation/lemonsqueezylicense

用法

初始化

要开始使用 LemonSqueezyLicense 包,首先导入它并创建 LemonSqueezyLicense 结构体的实例

import LemonSqueezyLicense

let license = LemonSqueezyLicense()

激活许可证

要为应用程序的新实例激活许可证密钥

do {
    let response = try await license.activate(key: "your-license-key", instanceName: "User's Mac")

    if response.activated {
        print("License activated successfully!")
        print("Instance ID: \(response.instance?.id ?? "N/A")")
    } else {
        print("License activation failed: \(response.licenseKey?.status ?? "Unknown status")")
    }
} catch {
    print("An error occurred: \(error)")
}

验证许可证

要验证现有的许可证密钥

do {
    let response = try await license.validate(key: "your-license-key", instanceId: "instance-id")

    if response.valid {
        print("License is valid!")
    } else {
        print("License is not valid: \(response.licenseKey?.status ?? "Unknown status")")
    }
} catch {
    print("An error occurred: \(error)")
}

停用许可证

要停用特定实例的许可证

do {
    let response = try await license.deactivate(key: "your-license-key", instanceId: "instance-id")

    if response.deactivated {
        print("License deactivated successfully!")
    } else {
        print("License deactivation failed: \(response.licenseKey?.status ?? "Unknown status")")
    }
} catch {
    print("An error occurred: \(error)")
}

错误处理

该软件包使用 LemonSqueezyLicenseError 来表示 API 交互期间可能发生的特定错误。您可以捕获并处理这些错误,如下所示

do {
    let response = try await license.activate(key: "your-license-key", instanceName: "User's Mac")
    // Handle successful response
} catch let error as LemonSqueezyLicenseError {
    switch error {
    case .badServerResponse:
        print("Received an invalid response from the server")
    case .serverError(let statusCode, let errorMessage):
        print("Server error (status \(statusCode)): \(errorMessage ?? "No error message provided")")
    }
} catch {
    print("An unexpected error occurred: \(error)")
}

捐赠

如果您觉得 LemonSqueezyLicense 有用并希望支持它的开发,请考虑捐款。您的贡献有助于维护项目和开发新功能。

非常感谢您的支持!

贡献

欢迎贡献!如果您有任何建议或改进,请打开一个 issue 或提交一个 pull request。

许可证

本仓库在 Apache License 2.0 许可下可用。