NerdzAppUpdates

关于

NerdzAppUpdates 是一个库,它为用户提供检查当前安装版本是否与分发服务保持同步的可能性。

该库支持两种类型的更新:强制更新和软更新。

App 支持多种类型的版本提供器

AppStoreVersionProvider 旨在与 语义化版本控制 系统一起使用。当应用主版本号不同时,会触发强制更新。例如,1.0.0 - 已安装版本,2.0.0 - 商店提供的版本。当应用次版本号不同时,会触发软更新。例如,0.2.0 - 已安装版本,0.3.0 - 商店提供的版本。当使用 BackendVersionProviderFirebaseVersionProvider 时,您可以在自己的服务器上设置所需和推荐的版本。

安装

您可以使用 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
        }
    }
}

让我们来看一下上面提到的代码片段中的一些重要行。

请注意。

  1. 请务必存储对 versionVerifier 对象的引用,以便此对象在版本检查完成之前不会被释放。
  2. 如果您正在使用 AppStoreVersionProvider,请在版本提供器初始化程序中指定国家/地区。您可以在 AppStoreCountry 文件 中查看可用国家/地区的列表。

许可

此代码根据 MIT 许可证分发。有关更多信息,请参阅 LICENSE 文件。