https://github.com/sparkle-project/Sparkle Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert {{ message }} sparkle-project / Sparkle Public * Notifications * Fork 1.1k * Star 6.9k * A software update framework for macOS sparkle-project.org License View license 6.9k stars 1.1k forks Branches Tags Activity Star Notifications * Code * Issues 20 * Pull requests 1 * Discussions * Actions * Security * Insights Additional navigation options * Code * Issues * Pull requests * Discussions * Actions * Security * Insights sparkle-project/Sparkle This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. 2.x BranchesTags Go to file Code Folders and files Name Name Last commit Last commit message date Latest commit History 4,119 Commits .github .github Autoupdate Autoupdate BinaryDelta BinaryDelta Configurations Configurations Documentation Documentation Downloader Downloader InstallerConnection InstallerConnection InstallerLauncher InstallerLauncher InstallerStatus InstallerStatus Resources Resources Sparkle.xcodeproj Sparkle.xcodeproj Sparkle Sparkle TestAppHelper TestAppHelper TestApplication TestApplication Tests Tests UITests UITests Vendor Vendor bin/old_dsa_scripts bin/old_dsa_scripts common_cli common_cli generate_appcast generate_appcast generate_keys generate_keys sign_update sign_update sparkle-cli sparkle-cli .clang-format .clang-format .gitignore .gitignore .gitmodules .gitmodules .swiftlint.yml .swiftlint.yml CHANGELOG CHANGELOG CODE_OF_CONDUCT.md CODE_OF_CONDUCT.md Carthage-dev.json Carthage-dev.json INSTALL INSTALL LICENSE LICENSE Makefile Makefile Package.swift Package.swift README.markdown README.markdown Sparkle.podspec Sparkle.podspec View all files Repository files navigation * README * Code of conduct * License Sparkle 2 Build Status SwiftPM Carthage compatible CocoaPods Secure and reliable software update framework for macOS. Sparkle shows familiar update window with release notes Sparkle 2 adds support for application sandboxing, custom user interfaces, updating external bundles, and a more modern architecture which includes faster and more reliable installs. Pre-releases when available can be found on the Sparkle's Releases or on your favorite package manager. More nightly builds can be downloaded by selecting a recent workflow run and downloading the corresponding Sparkle-distribution artifact. The current status for future versions of Sparkle is tracked by its roadmap. Please visit Sparkle's website for up to date documentation on using and migrating over to Sparkle 2. Refer to Changelog for a more detailed list of changes. More internal design documents to the project can be found in the repository under Documentation. Features * Seamless. There's no mention of Sparkle; your icons and app name are used. * Secure. Updates are verified using EdDSA signatures and Apple Code Signing. Supports Sandboxed applications in Sparkle 2. * Fast. Supports delta updates which only patch files that have changed and atomic-safe installs. * Easy to install. Sparkle requires no code in your app, and only needs static files on a web server. * Customizable. Sparkle 2 supports plugging in a custom UI for updates. * Flexible. Supports applications, package installers, preference panes, and other plug-ins. Sparkle 2 supports updating external bundles. * Handles permissions, quarantine, and automatically asks for authentication if needed. * Uses RSS-based appcasts for release information. Appcasts are a de-facto standard supported by 3rd party update-tracking programs and websites. * Stays hidden until second launch for better first impressions. * Truly self-updating -- the user can choose to automatically download and install all updates in the background. * Ability to use channels for beta updates (in Sparkle 2), add phased rollouts to users, and mark updates as critical or major. * Progress and status notifications for the host app. Requirements * Runtime: macOS 10.13 or later. * Build: Latest major Xcode (stable or beta, whichever is latest) and one major version less. * HTTPS server for serving updates (see App Transport Security) Usage See getting started guide. No code is necessary, but a bit of configuration is required. Troubleshooting * Please check Console.app for logs under your application. Sparkle prints detailed information there about all problems it encounters. It often also suggests solutions to the problems, so please read Sparkle's log messages carefully. * Use the generate_appcast tool which creates appcast files, correct signatures, and delta updates automatically. * Make sure the URL specified in SUFeedURL is valid (typos/404s are a common error!), and that it uses modern TLS (test it). API symbols Sparkle is built with -fvisibility=hidden -fvisibility-inlines-hidden which means no symbols are exported by default. If you are adding a symbol to the public API you must decorate the declaration with the SU_EXPORT macro (grep the source code for examples). Building the distribution package You do not usually need to build a Sparkle distribution unless you're making changes to Sparkle itself. To build a Sparkle distribution, cd to the root of the Sparkle source tree and run make release. Sparkle-VERSION.tar.xz (or .bz2) will be created and revealed in Finder after the build has completed. Alternatively, build the Distribution scheme in the Xcode UI. Code of Conduct We pledge to have an open and welcoming environment. See our Code of Conduct. About A software update framework for macOS sparkle-project.org Topics macos framework update software-update Resources Readme License View license Code of conduct Code of conduct Activity Custom properties Stars 6.9k stars Watchers 157 watching Forks 1.1k forks Report repository Releases 88 2.5.2 Release Notes + Sonoma Improvements Latest Dec 21, 2023 + 87 releases Contributors 152 * @zorgiepoo * @kornelski * @andymatuschak * @jakepetroules * @uliwitness * @MaddTheSane * @ksuther * @danielpunkass * @Sparkle-Bot * @belkadan * @kainjow * @Bi11 * @Deadpikle * @tonyarnold + 138 contributors Languages * Objective-C 70.4% * Swift 27.2% * Shell 2.1% * Ruby 0.1% * Makefile 0.1% * Python 0.1% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.