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 复制到您的项目中。
准备应用程序清单
- 在Xcode Organizer中生成企业应用程序分发期间的
manifest.plist
; - 确保
software-package
资产包含指向应用程序的 .ipa 的直接 https 链接; - 可选地,将发布说明添加到
subtitle
元数据中,以便在更新警报中显示(使用\n
换行); - 上传清单并获取您要用于初始化 EnterpriseAppUpdater 的直接 https 链接。
当发布更新时,清单 URL 必须保持不变,您只需编辑诸如应用程序的
url
、bundle-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 许可。