Representation and comparison of semantic versions in Swift.
Based on semantic versioning.
import Version
// Creating versions
let version1 = Version(major: 1, minor: 2, patch: 3)
let version2: Version = "2.0.0"
let version3: Version = "1.0.0-beta.1"
// Comparing versions
version1 < version2 // true
version1 == "1.2.3" // true
// Working with ranges
let range = Version(major: 1)...Version(major: 2)
range.contains(version1) // true
// Switch case support
let appVersion: Version = "2.1.0"
switch appVersion {
case Version(major: 2, minor: 0, patch: 0)...Version(major: 2, minor: 9, patch: 999):
print("Version 2.x")
case "3.0.0":
print("Version 3.0.0")
default:
print("Other version")
}
// Foundation integration
let bundle = Bundle.main
let appVersion = bundle.appVersion // Version
// StoreKit integration (iOS 16.0+)
#if canImport(StoreKit)
import StoreKit
let transaction: AppTransaction = ...
let originalVersion = transaction.originalVersion // Version
#endifdependencies: [
.package(url: "https://github.com/inekipelov/swift-version.git", from: "0.1.0")
]