SwiftyVersionTracker 4.2.0

SwiftyVersionTracker 4.2.0

Hiroshi Noto 维护。



  • Hiroshi Noto

SwiftyVersionTracker

Swift Build Status CocoaPods Compatible Carthage Compatible Platform license Twitter

快速预览

使用 SwiftyVersionTracker,您可以跟踪之前安装的哪些版本。同时,还提供了便捷的方法。

let tracker = try! SwiftyVersionTracker<SwiftyVersionIntInt>()

if tracker.isFirstLaunchEver {
  // do something
  // e.g. shows welcome screen
}

if tracker.isFirstLaunchForVersion {
  // do something
  // e.g. shows release note
}

if tracker.last?.major == 1 {
  // do something
  // e.g. migrate database
}

功能

  • 跟踪您的应用程序之前安装的哪个版本
  • 支持使用 Swift 泛型任何类型的版本化文字
  • 大多数用例都由SwiftyVersionIntInt 充分覆盖

用法

日文版在这里

参数

  • isFirstLaunchEver: Bool 返回是否是首次启动。
  • isFirstLaunchForVersion: Bool 返回是否是为此版本首次启动。
  • isFirstLaunchForBuild: Bool 返回是否是为此构建首次启动。
  • current: T 表示当前版本。
  • previous: T? 表示先前安装的版本。此值在推出不同版本之前不会改变。
  • first: T 表示用户第一次安装的版本。
  • last: T? 表示最后一次运行的版本。
  • history: [T] 表示所有安装版本的记录。

什么是 T?

SwiftyVersionTracker 是建立在面向协议编程之上的。我们定义了 SwiftyVersion 作为协议,因此你可以用 SwiftyVersionTracker 与任何版本规范和字面量一起使用。

SwiftyVersion

在使用 SwiftyVersionTracker 之前,你必须实现一个 结构体,该类或结构体遵守 SwiftyVersion。下面将简要描述 SwiftyVersion 协议。

public protocol SwiftyVersion: Equatable {
	associatedtype VersionLetters: Comparable
	associatedtype BuildLetters: Comparable

	var major: VersionLetters { get }
	var minor: VersionLetters { get }
	var release: VersionLetters { get }
	var build: BuildLetters { get }

	init(versionString: String?, buildString: String?) throws
}

如需更多有关软件版本编制的解释,请参阅 维基百科😃

SwiftyVersionIntInt: SwiftyVersion

好的,我们知道你们想尽可能简单、无障碍地使用 SwiftyVersionTracker,绝大多数应用程序都是用类似 version: 1.2.3, build: 10 的数字序列来表示的版本。为此,我们实现了 SwiftyVersionIntInt,它只支持使用整数进行版本编制。😉

let version = try! SwiftyVersionIntInt(versionString: "1.2.3", buildString: "4")

XCTAssertEqual(version.major, 1)
XCTAssertEqual(version.minor, 2)
XCTAssertEqual(version.release, 3)
XCTAssertEqual(version.build, 4)

SwiftyVersionTracker

现在是时候使用 SwiftyVersionTracker 了!你有两种初始化 SwiftyVersionTracker 的方法。

1. 使用 Bundle

第一种方式是使用bundle,这对于大多数应用来说是最好的方式。无需参数实例化 SwiftyVersionTracker,初始化器将尝试使用bundle版本字符串初始化 您的版本:SwiftyVersion。Bundle版本字符串在Xcode的目标通用设置中定义,就像下面这样。

下面是示例代码。

let tracker = try! SwiftyVersionTracker<YourVersion>()

看起来很酷,不是吗?😆

2. 使用您自己的

如果您在数据库、代码或类似的地方有版本字符串,可以使用参数 versionStringbuildString 初始化 SwiftyVersionTracker

下面的示例。

let tracker = try! SwiftyVersionTracker<YourVersion>(versionString: "1.2.3", buildString: "a123")

在应用扩展中

如果您希望在应用扩展中跟踪版本,可以指定 userDefaults 参数以在应用和扩展之间共享跟踪数据。

要求

  • iOS 8.0+
  • Xcode 9.3+

安装

SwiftyVersionTracker 通过 CocoaPodsCarthage 可用。

CocoaPods

安装时,只需在您的 Podfile 中添加以下行

platform :ios, '11.0'
use_frameworks!

pod 'SwiftyVersionTracker'

Carthage

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

github "notohiro/SwiftyVersionTracker"

运行carthage update来构建框架,然后将构建的SwiftyVersionTracker.framework拖入您的Xcode项目中。

玩得开心吗?🎉

不要忘记⭐️,如果您喜欢这个, please make a donation for a coffee.☕️

Donate

许可证

SwiftyVersionTracker遵循MIT许可证。有关详细信息,请参阅LICENSE文件。