Skip to content

A tiny package that adds an update process to your project

License

Notifications You must be signed in to change notification settings

exelban/updater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Updater

A tiny package that adds an update process to your project

Install

Swift Package Manager

Add https://github.com/exelban/updater in the Swift Package Manager tab in the XCode.

Usage

First of all, you need to initialize the Updater. You need to pass providers to the init function that will be used to fetch updates:

let updater = Updater(name: "Stats",
	providers: [
		Updater.Github(user: "exelban", repo: "stats", asset: "Stats.dmg")
	]
)

updater.check() { result, error in
	if error != nil {
		print("error updater.check() \(error!)")
		return
	}

	let local = Updater.Tag(Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String)
	guard let external = result else {
		print("no external release found")
		return
	}

	if local >= external.tag {
		return
	}

	self.updater.download(url, done: { path in
		self.updater.install(path: path)
	})
}

Supporting providers

Originally this package was designed to work only with Github Releases. But now it supports different providers:

  • Github Releases
  • Custom server (TODO)

License

MIT License