A simple app-updater for macOS, checks your GitHub releases for a binary asset and silently updates your app.
A simple app-updater for macOS, checks your GitHub releases for a binary asset and silently updates your app.
\(reponame)-\(semanticVersion).ext
. See semantics Version
package.dependencies.append(.package(url: "https://github.com/s1ntoneli/AppUpdater.git", from: "0.1.1"))
Then:
// init
var appUpdater = AppUpdater(owner: "s1ntoneli", repo: "AppUpdater", releasePrefix: "AppUpdaterExample", interval: 3 * 60 * 60)
// check and auto download
appUpdater.check()
appUpdater.check { // success } fail: { err in // failed }
// install
appUpdater.install()
appUpdater.install { // success } fail: { err in // failed }
appUpdater.install(appBundle)
Demo:
struct ContentView: View {
@EnvironmentObject var appUpdater: AppUpdater
var body: some View {
VStack {
if let appBundle = appUpdater.downloadedAppBundle {
HStack {
Text("New Version Available")
Button {
appUpdater.install(appBundle)
} label: {
Text("Update Now")
}.buttonStyle(.borderedProminent)
}
} else {
Text("No New Version")
}
Button {
appUpdater.check()
} label: {
Text("Check Update")
}
}
}
}