{"id":22796425,"url":"https://github.com/macmade/githubupdates","last_synced_at":"2025-04-05T16:10:48.770Z","repository":{"id":39526530,"uuid":"94513751","full_name":"macmade/GitHubUpdates","owner":"macmade","description":"Cocoa framework to install application updates from GitHub releases.","archived":false,"fork":false,"pushed_at":"2024-06-20T09:42:47.000Z","size":4362,"stargazers_count":437,"open_issues_count":2,"forks_count":16,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-29T15:09:41.387Z","etag":null,"topics":["app","cocoa","download","framework","github","install","release","sparkle","update"],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/macmade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"macmade"}},"created_at":"2017-06-16T06:43:10.000Z","updated_at":"2025-03-18T20:11:27.000Z","dependencies_parsed_at":"2024-06-20T22:48:34.748Z","dependency_job_id":"65e93b11-a6d8-419f-a2ab-3bb5816b7f7f","html_url":"https://github.com/macmade/GitHubUpdates","commit_stats":{"total_commits":61,"total_committers":1,"mean_commits":61.0,"dds":0.0,"last_synced_commit":"5af2d8bf1638e3ab1603650e25519faf9a8cde50"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macmade%2FGitHubUpdates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macmade%2FGitHubUpdates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macmade%2FGitHubUpdates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/macmade%2FGitHubUpdates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/macmade","download_url":"https://codeload.github.com/macmade/GitHubUpdates/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361695,"owners_count":20926643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","cocoa","download","framework","github","install","release","sparkle","update"],"created_at":"2024-12-12T05:12:57.556Z","updated_at":"2025-04-05T16:10:48.750Z","avatar_url":"https://github.com/macmade.png","language":"Objective-C","readme":"GitHubUpdates\n=============\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/macmade/GitHubUpdates/ci-mac.yaml?label=macOS\u0026logo=apple)](https://github.com/macmade/GitHubUpdates/actions/workflows/ci-mac.yaml)\n[![Issues](http://img.shields.io/github/issues/macmade/GitHubUpdates.svg?logo=github)](https://github.com/macmade/GitHubUpdates/issues)\n![Status](https://img.shields.io/badge/status-active-brightgreen.svg?logo=git)\n![License](https://img.shields.io/badge/license-mit-brightgreen.svg?logo=open-source-initiative)  \n[![Contact](https://img.shields.io/badge/follow-@macmade-blue.svg?logo=twitter\u0026style=social)](https://twitter.com/macmade)\n[![Sponsor](https://img.shields.io/badge/sponsor-macmade-pink.svg?logo=github-sponsors\u0026style=social)](https://github.com/sponsors/macmade)\n\nAbout\n-----\n\n**GitHubUpdates is Cocoa framework to install application updates from GitHub releases.**  \nIf you ever used [Sparkle](https://github.com/sparkle-project/Sparkle), this project provided the same kind of functionalities, but works with your GitHub releases and tags.\n\n![Update](Assets/Update.png \"Update\")\n\nDocumentation\n-------------\n\nDocumentation and API reference can be found at: http://doc.xs-labs.com/GitHubUpdates/\n\nHow to use\n----------\n\n### Application Setup\n\nThe project provides a **Cocoa framework** that you can embed into your own application.  \nA module is also defined, so you can either use:\n\n    @import GitHubUpdates;\n    \nor:\n\n    #import \u003cGitHubUpdates/GitHubUpdates.h\u003e\n\nIn order to check for updates, a `GitHubUpdater` object needs to be created:\n\n    self.updater            = [ GitHubUpdater new ];\n    self.updater.user       = @\"MyGitHubUsername\" \n    self.updater.repository = @\"MyGitHubRepository\";\n\nNote that you can also create the `GitHubUpdater` instance with **InterfaceBuilder**.  \nThe `user` and `repository` properties are inspectable, so you can set them with the Interface Builder inspector palette.\n\n![IB](Assets/IB.png \"IB\")\n\nYou can then check for updates using the IB action:\n\n    [ self.updater checkForUpdates: nil ];\n\nThis method will show a progress window, while checking for available updates.  \nYou can also choose to check for updates in background:\n\n    [ self.updater checkForUpdatesInBackground ];\n\nWith this method, the update window will only be shown if an update is available.\n\nYou can also check for updates periodically, using a timer:\n\n    [ NSTimer scheduledTimerWithTimeInterval: 3600 target: self.updater selector: @selector( checkForUpdatesInBackground ) userInfo: nil repeats: YES ];\n    \nThis will check for updates every hour.\n\n### Create a release on GitHub\n\n**GitHubUpdates** will check your GitHub tags to see if an update is available.\n\nYour tags should correspond to the application's version number, as in `CFBundleShortVersionString`.  \nThere's no built-in support for `CFBundleVersion`, but that behaviour can be customized with `GitHubUpdaterDelegate` if needed.\n\nTags can be created on GitHub the following way:\n\n    git tag 0.1.2 -m \"0.1.2\"\n    git push origin --tags\n\nOnce you created a new tag, you'll need to upload a ZIP archive or a DMG file of your application to GitHub.  \nAlso note that your application should be at the first level of the ZIP archive or the DMG file.\n\nNote that the installer will check the value of `CFBundleIdentifier`, so they need to match.\n\n### Code-Signing\n\nFor obvious security reasons, the installer will also check code-signing properties.\n\nWhile you can use **GitHubUpdates** without code-signing, the installer will refuse to install a non code-signed version, if the current version is code-signed.\nCode-signing identities are also checked, and the installer will refuse to install an update if there's a mismatch in the code-signing identities.\n\nLicense\n-------\n\nGitHubUpdates is released under the terms of the MIT license.\n\nRepository Infos\n----------------\n\n    Owner:          Jean-David Gadina - XS-Labs\n    Web:            www.xs-labs.com\n    Blog:           www.noxeos.com\n    Twitter:        @macmade\n    GitHub:         github.com/macmade\n    LinkedIn:       ch.linkedin.com/in/macmade/\n    StackOverflow:  stackoverflow.com/users/182676/macmade\n","funding_links":["https://github.com/sponsors/macmade"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacmade%2Fgithubupdates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmacmade%2Fgithubupdates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmacmade%2Fgithubupdates/lists"}