Git Product home page Git Product logo

sparkle's Introduction

Sparkle Build Status Carthage compatible CocoaPods sponsored by: StackPath

Secure and reliable software update framework for Cocoa developers.

Sparkle shows familiar update window with release notes

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.
  • Sparkle 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.

Changes since 1.5b

  • Compatibility with macOS Sierra (and all newer versions).
  • Up-to-date with 10.14 SDK and Xcode 10 (supports macOS 10.7+).
  • Important security fixes and more secure signature algorithm.
  • Cleaned up and modernized code, using ARC and Autolayout.
  • Truly automatic background updates (no UI at all) when user agreed to "Automatically download and install updates in the future."
  • Upgraded and more reliable binary delta and code signing verification.
  • 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.0 (alpha) can.

Usage

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

Development

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's People

Contributors

kornelski avatar andymatuschak avatar zorgiepoo avatar jakepetroules avatar uliwitness avatar maddthesane avatar bi11 avatar kainjow avatar deadpikle avatar danielpunkass avatar ksuther avatar bdash avatar hofman avatar jollyjinx avatar 1024jp avatar mattstevens avatar gabrielulici avatar catfish-man avatar codecaffeine avatar vitu avatar bdb avatar lapcat avatar xhacker avatar vslavik avatar peterspeck avatar grahammiln avatar zwaldowski avatar nivekkagicom avatar eitot avatar fjaeger avatar

Watchers

James Cloos avatar Nate Thompson avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.