EnterpriseAppUpdater 1.2.2

EnterpriseAppUpdater 1.2.2

Alexey Demin 维护。




  • 作者:Alexey Demin
  • Alexey Demin

EnterpriseAppUpdater

Enterprise App Updater 加载应用的清单文件,检查新版本,提供带有补丁说明的警告并开始更新。

设置

Swift Package Manager (推荐)

在 Xcode 11 或更高版本中打开您的应用程序项目,转到菜单 文件 -> Swift Packages -> 添加包依赖...,并粘贴包仓库 URL https://github.com/DnV1eX/EnterpriseAppUpdater.git

CocoaPods (已弃用)

将此 pod 添加到您的 Podfile

pod 'EnterpriseAppUpdater', '~> 1.1'

复制文件(不推荐)

或者,您可以手动将 EnterpriseAppUpdater.swift 复制到您的项目中。

准备应用程序清单

  1. 在Xcode Organizer中生成企业应用程序分发期间的 manifest.plist
  2. 确保 software-package 资产包含指向应用程序的 .ipa 的直接 https 链接;
  3. 可选地,将发布说明添加到 subtitle 元数据中,以便在更新警报中显示(使用 \n 换行);
  4. 上传清单并获取您要用于初始化 EnterpriseAppUpdater 的直接 https 链接。

当发布更新时,清单 URL 必须保持不变,您只需编辑诸如应用程序的 urlbundle-version 和可选的 subtitle 之类的 .plist 内容。

使用示例

import EnterpriseAppUpdater
typealias Updater = EnterpriseAppUpdater
let updater = Updater(manifest: url) // Initialize EnterpriseAppUpdater with manifest.plist URL.
updater.loadManifest { result in
    switch result {
    case .success(let manifest):
        switch updater.check(manifest: manifest) {
        case .success(let item):
            let alert = updater.alert(for: item, onStart: { _ in
                print(Updater.Message.started, item.metadata.version)
                updater.start { error in
                    print(Updater.Message.error, error)
                }
            }, onPostpone: { _ in
                print(Updater.Message.postponed, item.metadata.version)
            })
            self.present(alert, animated: true) // Use UIApplication.shared.windows.first?.rootViewController? if self is not UIViewController.
        case .failure(let error):
            switch error {
            case .noAppUpdateNeeded:
                print(Updater.Message.upToDate, error)
            default:
                print(Updater.Message.error, error)
            }
        }
    case .failure(let error):
        print(Updater.Message.error, error)
    }
}

决定是否在应用程序启动时、在时间间隔内或根据用户请求加载清单和检查更新留给你自己。

许可

版权所有 © 2019 DnV1eX。保留所有权利。根据 Apache License,版本 2.0 许可。