一种简单直观的在 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 中
File
-> Swift Packages
-> Add Package Dependency...
https://github.com/kevinhermawan/swift-lemon-squeezy-license.git
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 许可下可用。