header

SwiftVer

SwiftPM Twitter GitHub GitHub issues Beerpay Analytics

macOS ubuntu Travis (.com) Codecov CodeFactor Grade codebeat badge Code Climate maintainability Code Climate technical debt Code Climate issues

Version License Platform Cocoapods doc percentage Carthage compatible Reviewed by Hound

通过解析 Bundle 和版本控制系统 (VCS) 仓库中的修订元数据,来管理 macOS, iOS, watchOS, 和 tvOS 项目中的版本控制。

screenshoot

目录

要求

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理工具。 您可以使用以下命令安装它

$ gem install cocoapods

要使用 CocoaPods 将 SwiftVer 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

use_frameworks!

pod 'SwiftVer'

然后,运行以下命令

$ pod install

Carthage

Carthage 是一个去中心化的依赖管理工具,它构建您的依赖项并为您提供二进制框架。

您可以使用 Homebrew 安装 Carthage,使用以下命令

$ brew update
$ brew install carthage

要使用 Carthage 将 SwiftVer 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它

github "brightdigit/SwiftVer" ~> 2.0.0

运行 carthage update 来构建框架并将构建的 SwiftVer.framework 拖到您的 Xcode 项目中。

用法

从 Bundle 中解析版本

Version bundle 初始化器接收一个 Bundle,并且是可失败的。 如果您的 Bundle 不包含格式为 major.minormajor.minor.patch 的有效版本字符串,则初始化程序将失败。

guard let version = Version(bundle: Bundle.main) else {
	// invalid version format
}

有效

xcode screenshot version 1.0.1

有效

xcode screenshot version 1.0

无效

xcode screenshot version 1

将版本控制信息与 Autorevision 集成

您可以使用 Autorevision 从您的 VCS 仓库中修订元数据。

  1. Autorevision 添加 bash 脚本。

  2. 向您的项目添加一个 Run Script 构建阶段。

"${SRCROOT}/autorevision.sh" -t <format> >${SRCROOT}/framework/autorevision.<format>
  1. 将输出包含在您的 bundle 中。

  2. 解析输出并调用 VersionControlInfo 初始化器。

public struct VersionControlInfo {  
	public init(type: String,
              baseName: String,
              uuid: Hash?,
              number: Int,
              date: String,
              branch: String,
              tag: String?,
              tick: Int?,
              extra: String?,
              hash: String,

              isWorkingCopyModified: Bool)
}

使用 StageBuildDictionary 解析 Stage

在 2.0.0 版本中,您可以根据 StageBuildDictionary 解析 stage。 StageBuildDictionary 是一个 plist,它将语义版本映射到 stage 及其最小构建版本号。

每次语义版本号时重置构建号的 Plist (iOS)

intra build stage dictionary plist screenshot

每次语义版本号时不重置构建号的 Plist (兼容 Sparkle 的 macOS)

global build stage dictionary plist screenshot

要创建字典,请将其传递给以下方法

public enum Stage {
  public static func dictionary(fromPlistAtURL url: URL) -> StageBuildDictionaryProtocol?
}

文档

文档在这里

作者

Leo G Dion, BrightDigit, LLC

许可证

SwiftVer 在 MIT 许可证下可用。 有关更多信息,请参见 LICENSE 文件。