NerdzAppUpdates 是一个库,它为用户提供检查当前安装版本是否与分发服务保持同步的可能性。
该库支持两种类型的更新:强制更新和软更新。
App 支持多种类型的版本提供器
AppStoreVersionProvider
- 它使用 Itunes lookup api 来检索 AppStore 的当前应用版本,然后执行版本检查。BackendVersionProvider
- 它为用户提供从您的服务器检索当前所需和推荐的应用版本的能力。FirebaseVersionProvider
- 它使用 Firebase 远程配置来检索当前所需和推荐的应用版本。AppStoreVersionProvider
旨在与 语义化版本控制 系统一起使用。当应用主版本号不同时,会触发强制更新。例如,1.0.0
- 已安装版本,2.0.0
- 商店提供的版本。当应用次版本号不同时,会触发软更新。例如,0.2.0
- 已安装版本,0.3.0
- 商店提供的版本。当使用 BackendVersionProvider
和 FirebaseVersionProvider
时,您可以在自己的服务器上设置所需和推荐的版本。
您可以使用 Swift Package Manager 安装此库。要安装 AppStoreVersionProvider
,请使用 provider/appstore
分支。要安装 BackendVersionProvider
,请使用 provider/backend
分支。要安装 FirebaseVersionProvider
,请使用 provider/firebase
分支。
使用 AppStoreVersionProvider
和自定义加载指示器的示例。
import NerdzAppUpdates // Line 1
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
private lazy var versionVerifyer: VersionVerifier = { // Line 2
let provider = AppStoreVersionProvider(country: .germany) // Line 3
let verifier = VersionVerifier(
versionDataProvider: provider,
loadingIndicationMode: .screen(LoaderScreen()), // Line 4
softUpdateMode: .screen(SoftUpdateScreen(), true), // Line 5
hardUpdateMode: .screen(HardUpdateScreen()) // Line 6
)
return verifier
}()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
verifyVersion() // Line 7
return true
}
private func verifyVersion() {
versionVerifyer.verifyVersion { [weak self] result in // Line 8
guard case .failure(let error) = result else {
return
}
self?.showError(error.localizedDescription) // Line 9
}
}
}
让我们来看一下上面提到的代码片段中的一些重要行。
SoftUpdateScreen()
是一个屏幕,它为用户提供打开应用分发服务或跳过更新的可能性,而 animated
- 是一个布尔选项,用于指示是否动画化消失上述屏幕AppStoreVersionProvider
,请在版本提供器初始化程序中指定国家/地区。您可以在 AppStoreCountry 文件 中查看可用国家/地区的列表。此代码根据 MIT 许可证分发。有关更多信息,请参阅 LICENSE
文件。