- 为 Android、Flutter、iOS 和 RN SDK 的 Jenkinsfile 添加模块化版本控制 - 引入版本升级策略选择(major/minor/patch)和自定义版本号功能 - 实现多模块独立版本管理和选择性构建发布 - 更新 iOS SDK Package.swift 以支持独立模块化库 - 修改 iOS SDK podspec 文件以适应新的标签命名约定 - 优化 Jenkins 构建流程以支持按需选择特定模块进行构建和发布 - 修复 iOS 测试中的可选类型转换问题以提高代码健壮性
100 行
2.4 KiB
Swift
100 行
2.4 KiB
Swift
import Foundation
|
|
import XuqmCoreSDK
|
|
|
|
public struct LicenseFile: Codable, Sendable {
|
|
public let appKey: String
|
|
public let appName: String?
|
|
public let companyName: String?
|
|
public let packageName: String?
|
|
public let iosBundleId: String?
|
|
public let harmonyBundleName: String?
|
|
public let baseUrl: String?
|
|
public let serverUrl: String?
|
|
public let issuedAt: String?
|
|
public let expiresAt: String?
|
|
|
|
public init(
|
|
appKey: String,
|
|
appName: String? = nil,
|
|
companyName: String? = nil,
|
|
packageName: String? = nil,
|
|
iosBundleId: String? = nil,
|
|
harmonyBundleName: String? = nil,
|
|
baseUrl: String? = nil,
|
|
serverUrl: String? = nil,
|
|
issuedAt: String? = nil,
|
|
expiresAt: String? = nil
|
|
) {
|
|
self.appKey = appKey
|
|
self.appName = appName
|
|
self.companyName = companyName
|
|
self.packageName = packageName
|
|
self.iosBundleId = iosBundleId
|
|
self.harmonyBundleName = harmonyBundleName
|
|
self.baseUrl = baseUrl
|
|
self.serverUrl = serverUrl
|
|
self.issuedAt = issuedAt
|
|
self.expiresAt = expiresAt
|
|
}
|
|
}
|
|
|
|
public struct LicenseUserInfo: Sendable {
|
|
public let userId: String?
|
|
public let name: String?
|
|
public let email: String?
|
|
public let phone: String?
|
|
|
|
public init(userId: String? = nil, name: String? = nil, email: String? = nil, phone: String? = nil) {
|
|
self.userId = userId
|
|
self.name = name
|
|
self.email = email
|
|
self.phone = phone
|
|
}
|
|
}
|
|
|
|
public enum LicenseStatus: Sendable {
|
|
case ok
|
|
case denied
|
|
case unknown
|
|
}
|
|
|
|
public enum LicenseResult: Sendable {
|
|
case success(String)
|
|
case error(String)
|
|
}
|
|
|
|
struct UserInfoPayload: Encodable {
|
|
let userId: String?
|
|
let name: String?
|
|
let email: String?
|
|
let phone: String?
|
|
}
|
|
|
|
struct RegisterRequest: Encodable {
|
|
let appKey: String
|
|
let deviceId: String
|
|
let deviceName: String?
|
|
let deviceModel: String
|
|
let deviceVendor: String
|
|
let osVersion: String
|
|
let userInfo: UserInfoPayload?
|
|
}
|
|
|
|
struct VerifyRequest: Encodable {
|
|
let appKey: String
|
|
let deviceId: String
|
|
let token: String
|
|
let userInfo: UserInfoPayload?
|
|
}
|
|
|
|
struct RegisterResponse: Decodable {
|
|
let success: Bool
|
|
let token: String?
|
|
let message: String?
|
|
}
|
|
|
|
struct VerifyResponse: Decodable {
|
|
let valid: Bool
|
|
let error: String?
|
|
}
|