语义版本控制 3.0.0

SemanticVersioning 3.0.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2020年3月
SPM支持 SPM

Alexander Ney 维护。



语义版本控制

Twitter: @ajax64 Platform Platform License Travis Swift Version codecov

Swift 中的语义版本控制实现!使用结构体 Version 来表示符合 语义版本控制规范 2.0.0 的版本。

完全单元测试

100% Swift

开始使用

要求

  • iOS 11.0+ / Mac OS X 10.13+
  • Xcode 11+
  • Swift 5.0

安装

在您的项目中使用 SemanticVersion 的一种最容易的方式是使用 CocoaPods 包管理器。

Swift PM

请参阅如何将依赖项添加到您的应用程序了解如何使用该库与Swift PM。

CocoaPods

如果尚未安装,请参阅CocoaPods的安装说明

要将库集成到您的Xcode项目中,请将pods依赖项指定到您的Podfile

platform :ios, '11.0'
use_frameworks!

pod 'SemanticVersioning'

运行pod install

pod install

使用方法

创建版本2.0.0

let version = Version(major: 2)

创建版本1.2.3

let version = Version(major: 1, minor: 2, patch: 3)

创建版本1.0.0-alpha.2

let version = Version(major: 1, preReleaseIdentifier: ["alpha", "2"])

从字符串创建版本

let version: Version = "1.3.10-rc"

从字符串数组创建版本列表

let versions: [Version] = ["1.0.0-alpha", "1.0.0-alpha.1"]

检查是否为预发布版本

if version.isPrerelease { ... }

通过preReleaseIdentifier数组访问预发布标识符

for identifier in version.preReleaseIdentifier
{
    // ...
}

通过buildMetadataIdentifier数组访问构建元数据标识符

for identifier in version.buildMetadataIdentifier
{
    // ...
}

遵守Printable,因此您可以简单地通过访问description属性来获取字符串表示形式

print(version)
// OR
let stringRepresentation = version.description

可变性与不可变性

比较

默认的比较操作符实现了<<=>>===!=,这将根据语义化版本控制规范2.0.0比较主要版本、次要版本、补丁和预发布标识符

解析器

实现包括解析版本字符串表示的全功能组件。请现在查看《SemanticVersioningParser》的测试和源代码😉

测试

该库包括一系列测试,展示了如何使用不同的初始化器和解析器

扩展

有一些内置的扩展可以帮助您更轻松地完成任务。

NSBundle

如果bundle的Info.plist中设置了版本,则可以获取NSBundle的struct Version

let bundle = NSBundle(forClass: self.dynamicType)
if let version = bundle.version
{
	// ...
}

IntegerLiteralConvertible

将整型转换为Version结构体。您可以使用它来表示主版本。

自定义扩展

通过创建符合SemanticVersion的结构体/对象来自定义扩展或Version表示。有关更多信息,请查看扩展或Version实现。