Sparkle

macOS的软件更新框架。(A software update framework for macOS.)

Github星跟蹤圖

Sparkle 1.x Build Status Carthage compatible CocoaPods

Secure and reliable software update framework for Cocoa developers.

This branch is the production ready, battle-tested version of Sparkle used by thousands of Mac apps.
The upcoming Sparkle 2 (currently in beta) can be found in the 2.x branch.

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.
  • Fast. Supports delta updates which only patch files that have changed.
  • Easy to install. Sparkle requires no code in your app, and only needs static files on a web server.
  • Supports bundles, preference panes, plugins, and other non-.app software. Can install .pkg files for more complicated products.
  • 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 mark updates as critical.
  • Progress and status notifications for the host app.

Requirements

  • Runtime: macOS 10.7 or greater
  • Build: Xcode 9 and 10.11 SDK or greater
  • HTTPS server for serving updates (see App Transport Security)
  • No sandboxing. Sparkle 1.x can't update sandboxed apps. Sparkle 2.x can.

Usage

See getting started guide. No code is necessary, but a bit of Xcode configuration is required.

Development

This repository uses git submodules, and will not build unless you clone recursively. Also, GitHub-provided ZIP/tar archives are broken due to GitHub not supporting git submodules properly.

git clone --recursive https://github.com/sparkle-project/Sparkle

Troubleshooting

  • Please check Console.app. 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).

  • Delete your app's preferences (in ~/Library/Preferences/<your bundle id>) if you've set another feed URL programmatically via Sparkle's Objective-C interface.

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

cd to the root of the Sparkle source tree and run make release. Sparkle-VERSION.tar.bz2 will be created in a temporary directory 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.

Project Sponsor

StackPath

主要指標

概覽
名稱與所有者sparkle-project/Sparkle
主編程語言Objective-C
編程語言Shell (語言數: 7)
平台Mac
許可證Other
所有者活动
創建於2009-08-11 07:05:25
推送於2025-07-14 04:59:00
最后一次提交2024-05-12 23:43:54
發布數307
最新版本名稱2.7.1 (發布於 )
第一版名稱sparkle-1.5b1 (發布於 )
用户参与
星數7.9k
關注者數156
派生數1.1k
提交數4.2k
已啟用問題?
問題數1393
打開的問題數21
拉請求數1005
打開的拉請求數2
關閉的拉請求數131
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?