Skip to content

inekipelov/swift-version

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Version

Swift Version SPM License Swift Tests
iOS macOS tvOS watchOS

Representation and comparison of semantic versions in Swift.

Based on semantic versioning.

Usage

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
#endif

Installation

dependencies: [
    .package(url: "https://github.com/inekipelov/swift-version.git", from: "0.1.0")
]

About

Represent and compare versions via semantic versioning in Swift

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages