SwiftyVersionTracker
快速预览
使用 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. 使用您自己的
如果您在数据库、代码或类似的地方有版本字符串,可以使用参数 versionString
和 buildString
初始化 SwiftyVersionTracker
。
下面的示例。
let tracker = try! SwiftyVersionTracker<YourVersion>(versionString: "1.2.3", buildString: "a123")
在应用扩展中
如果您希望在应用扩展中跟踪版本,可以指定 userDefaults
参数以在应用和扩展之间共享跟踪数据。
要求
- iOS 8.0+
- Xcode 9.3+
安装
SwiftyVersionTracker 通过 CocoaPods 和 Carthage 可用。
CocoaPods
安装时,只需在您的 Podfile
中添加以下行
platform :ios, '11.0'
use_frameworks!
pod 'SwiftyVersionTracker'
Carthage
要使用Carthage将NowCastMapView集成到您的Xcode项目中,请在您的Cartfile
中指定它。
github "notohiro/SwiftyVersionTracker"
运行carthage update
来构建框架,然后将构建的SwiftyVersionTracker.framework
拖入您的Xcode项目中。
🎉
玩得开心吗?不要忘记
许可证
SwiftyVersionTracker遵循MIT许可证。有关详细信息,请参阅LICENSE文件。