{"id":13434390,"url":"https://github.com/sparkle-project/Sparkle","last_synced_at":"2025-03-17T14:31:23.196Z","repository":{"id":633843,"uuid":"274782","full_name":"sparkle-project/Sparkle","owner":"sparkle-project","description":"A software update framework for macOS","archived":false,"fork":false,"pushed_at":"2025-02-23T14:46:31.000Z","size":43620,"stargazers_count":7653,"open_issues_count":22,"forks_count":1056,"subscribers_count":157,"default_branch":"2.x","last_synced_at":"2025-03-10T04:16:10.627Z","etag":null,"topics":["framework","macos","software-update","update"],"latest_commit_sha":null,"homepage":"https://sparkle-project.org","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sparkle-project.png","metadata":{"files":{"readme":"README.markdown","changelog":"CHANGELOG","contributing":null,"funding":null,"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}},"created_at":"2009-08-11T07:05:25.000Z","updated_at":"2025-03-07T22:25:46.000Z","dependencies_parsed_at":"2024-02-23T06:28:11.940Z","dependency_job_id":"790d44b9-a70d-4c0a-afd8-33d077b7cd6d","html_url":"https://github.com/sparkle-project/Sparkle","commit_stats":{"total_commits":3492,"total_committers":214,"mean_commits":"16.317757009345794","dds":0.5369415807560137,"last_synced_commit":"73695f6913dfcfb918f6db44bf6dc47502de77a3"},"previous_names":[],"tags_count":306,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparkle-project%2FSparkle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparkle-project%2FSparkle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparkle-project%2FSparkle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sparkle-project%2FSparkle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sparkle-project","download_url":"https://codeload.github.com/sparkle-project/Sparkle/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243976493,"owners_count":20377692,"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":["framework","macos","software-update","update"],"created_at":"2024-07-31T02:01:55.285Z","updated_at":"2025-03-17T14:31:18.187Z","avatar_url":"https://github.com/sparkle-project.png","language":"Objective-C","funding_links":[],"categories":["Objective-C","前端开发框架及项目","Uncategorized"],"sub_categories":["iOS_Swift应用开发","Uncategorized"],"readme":"# Sparkle 2 ![Build Status](https://github.com/sparkle-project/Sparkle/workflows/Build%20%26%20Tests/badge.svg?branch=2.x) ![SwiftPM](https://img.shields.io/badge/SwiftPM-compatible-4BC51D.svg?style=flat) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![CocoaPods](https://img.shields.io/cocoapods/v/Sparkle.svg?cacheSeconds=86400)](https://cocoapods.org/pods/Sparkle)\n\nSecure and reliable software update framework for macOS.\n\n\u003cimg src=\"Resources/Screenshot.png\" width=\"732\" alt=\"Sparkle shows familiar update window with release notes\"\u003e\n\nSparkle 2 adds support for application sandboxing, custom user interfaces, updating external bundles, and a more modern architecture which includes faster and more reliable installs.\n\nPre-releases when available can be found on the [Sparkle's Releases](https://github.com/sparkle-project/Sparkle/releases) or on your favorite package manager. More nightly builds can be downloaded by selecting a recent [workflow run](https://github.com/sparkle-project/Sparkle/actions?query=event%3Apush+is%3Asuccess+branch%3A2.x) and downloading the corresponding Sparkle-distribution artifact.\n\nThe current status for future versions of Sparkle is tracked by [its roadmap](https://github.com/sparkle-project/Sparkle/milestones).\n\nPlease visit [Sparkle's website](http://sparkle-project.org) for up to date documentation on using and migrating over to Sparkle 2. Refer to [Changelog](CHANGELOG) for a more detailed list of changes. More internal design documents to the project can be found in the repository under [Documentation](Documentation/).\n\n## Features\n\n* Seamless. There's no mention of Sparkle; your icons and app name are used.\n* Secure. Updates are verified using EdDSA signatures and Apple Code Signing. Supports Sandboxed applications in Sparkle 2.\n* Fast. Supports delta updates which only patch files that have changed and atomic-safe installs.\n* Easy to install. Sparkle requires no code in your app, and only needs static files on a web server.\n* Customizable. Sparkle 2 supports plugging in a custom UI for updates.\n* Flexible. Supports applications, package installers, preference panes, and other plug-ins. Sparkle 2 supports updating external bundles.\n* Handles permissions, quarantine, and automatically asks for authentication if needed.\n* Uses RSS-based appcasts for release information. Appcasts are a de-facto standard supported by 3rd party update-tracking programs and websites.\n* Stays hidden until second launch for better first impressions.\n* Truly self-updating — the user can choose to automatically download and install all updates in the background.\n* Ability to use channels for beta updates (in Sparkle 2), add phased rollouts to users, and mark updates as critical or major.\n* Progress and status notifications for the host app.\n\n## Requirements\n\n* Runtime: macOS 10.13 or later.\n* Build: Latest major Xcode (stable or beta, whichever is latest) and one major version less.\n* HTTPS server for serving updates (see [App Transport Security](http://sparkle-project.org/documentation/app-transport-security/))\n\n## Usage\n\nSee [getting started guide](https://sparkle-project.org/documentation/). No code is necessary, but a bit of configuration is required.\n\n### Troubleshooting\n\n  * 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.\n\n  * Use the `generate_appcast` tool which creates appcast files, correct signatures, and delta updates automatically.\n\n  * Make sure the URL specified in [`SUFeedURL`](https://sparkle-project.org/documentation/customization/) is valid (typos/404s are a common error!), and that it uses modern TLS ([test it](https://www.ssllabs.com/ssltest/)).\n\n### API symbols\n\nSparkle is built with `-fvisibility=hidden -fvisibility-inlines-hidden` which means no symbols are exported by default.\nIf 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).\n\n### Building the distribution package\n\nYou do not usually need to build a Sparkle distribution unless you're making changes to Sparkle itself.\n\nTo build a Sparkle distribution, `cd` to the root of the Sparkle source tree and run `make release`. Sparkle-*VERSION*.tar.xz will be created and revealed in Finder after the build has completed.\n\nAlternatively, build the Distribution scheme in the Xcode UI.\n\n### Code of Conduct\n\nWe pledge to have an open and welcoming environment. See our [Code of Conduct](CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparkle-project%2FSparkle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsparkle-project%2FSparkle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsparkle-project%2FSparkle/lists"}