• Stars
    star
    434
  • Rank 100,274 (Top 2 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created over 7 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Cocoa framework to install application updates from GitHub releases.

GitHubUpdates

Build Status Issues Status License
Contact Sponsor

About

GitHubUpdates is Cocoa framework to install application updates from GitHub releases.
If you ever used Sparkle, this project provided the same kind of functionalities, but works with your GitHub releases and tags.

Update

Documentation

Documentation and API reference can be found at: http://doc.xs-labs.com/GitHubUpdates/

How to use

Application Setup

The project provides a Cocoa framework that you can embed into your own application.
A module is also defined, so you can either use:

@import GitHubUpdates;

or:

#import <GitHubUpdates/GitHubUpdates.h>

In order to check for updates, a GitHubUpdater object needs to be created:

self.updater            = [ GitHubUpdater new ];
self.updater.user       = @"MyGitHubUsername" 
self.updater.repository = @"MyGitHubRepository";

Note that you can also create the GitHubUpdater instance with InterfaceBuilder.
The user and repository properties are inspectable, so you can set them with the Interface Builder inspector palette.

IB

You can then check for updates using the IB action:

[ self.updater checkForUpdates: nil ];

This method will show a progress window, while checking for available updates.
You can also choose to check for updates in background:

[ self.updater checkForUpdatesInBackground ];

With this method, the update window will only be shown if an update is available.

You can also check for updates periodically, using a timer:

[ NSTimer scheduledTimerWithTimeInterval: 3600 target: self.updater selector: @selector( checkForUpdatesInBackground ) userInfo: nil repeats: YES ];

This will check for updates every hour.

Create a release on GitHub

GitHubUpdates will check your GitHub tags to see if an update is available.

Your tags should correspond to the application's version number, as in CFBundleShortVersionString.
There's no built-in support for CFBundleVersion, but that behaviour can be customized with GitHubUpdaterDelegate if needed.

Tags can be created on GitHub the following way:

git tag 0.1.2 -m "0.1.2"
git push origin --tags

Once you created a new tag, you'll need to upload a ZIP archive or a DMG file of your application to GitHub.
Also note that your application should be at the first level of the ZIP archive or the DMG file.

Note that the installer will check the value of CFBundleIdentifier, so they need to match.

Code-Signing

For obvious security reasons, the installer will also check code-signing properties.

While 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. Code-signing identities are also checked, and the installer will refuse to install an update if there's a mismatch in the code-signing identities.

License

GitHubUpdates is released under the terms of the MIT license.

Repository Infos

Owner:          Jean-David Gadina - XS-Labs
Web:            www.xs-labs.com
Blog:           www.noxeos.com
Twitter:        @macmade
GitHub:         github.com/macmade
LinkedIn:       ch.linkedin.com/in/macmade/
StackOverflow:  stackoverflow.com/users/182676/macmade

More Repositories

1

Hot

Hot is macOS menu bar application that displays the CPU speed limit due to thermal issues.
Swift
2,296
star
2

KeychainCracker

macOS keychain cracking tool
Objective-C
845
star
3

OpenCV-iOS

OpenCV (Open Source Computer Vision) is a library of programming functions for real time computer vision. This project is a port of the OpenCV library for Apple iOS. It includes two XCode projects: one for iPhone, the other one for iPad.
Makefile
437
star
4

Console

OS X console application.
Swift
403
star
5

ClangKit

ClangKit provides an Objective-C frontend to LibClang. Source tokenization, diagnostics and fix-its are actually implemented.
C
356
star
6

Xclean

Xclean is a macOS menu bar app that provides a convenient way to clear Xcode's derived data or module cache.
Swift
312
star
7

QEMU-Manager

macOS graphical frontend to QEMU
Swift
309
star
8

FileVaultCracker

macOS FileVault cracking tool
Objective-C
240
star
9

dyld_cache_extract

A macOS utility to extract dynamic libraries from the dyld_shared_cache of macOS and iOS.
C++
222
star
10

Diagnostics

Diagnostics is an application displaying the diagnostic reports from applications on macOS.
Swift
196
star
11

IOBrowser

A macOS application for browsing the IOKit registry.
Swift
181
star
12

FileSystem

FileSystem is an application that allows you to browse the content of your iPhone disk, displaying file and folders, files contents, and detailed informations about file and folder permissions.
Objective-C
171
star
13

Macintosh-ROMs

A collection of old world Macintosh ROM files.
161
star
14

Sensors

A macOS application displaying the thermal, voltage and current sensor values.
Swift
126
star
15

Notarize

Notarization status monitoring tool for macOS, supporting multiple developer accounts.
Swift
112
star
16

unicorn-bios

Basic BIOS emulator for Unicorn Engine.
C++
98
star
17

AtomicKit

Concurrency made simple in Swift.
Swift
93
star
18

ShellKit

Objective-C framework for running shell scripts.
Objective-C
88
star
19

FaceDetect

This project is an example of using OpenCV on the iPhone. It provides a simple application that let you take a picture (or select one from your photo library), and that detects the face(s) on the picture.
C++
82
star
20

XEOS

XEOS is an experimental 32/64 bits Operating System for x86 platforms, written from scratch in Assembly and C. It includes a C99 Standard Library, and aims at POSIX/SUS2 compatibility.
Makefile
82
star
21

user-defaults

Better NSUserDefaults
Objective-C
74
star
22

ccache-gui

macOS GUI helper for ccache
Swift
71
star
23

OBJCXX

C++
71
star
24

SeriousCode

This header file enforces Clang warnings to bu turned-on for specific flags (almost everyone, at least each one I was able to find).
C
69
star
25

DSStoreView

.DS_Store file parser/viewer.
Swift
68
star
26

Obfuscate

C/C++ machine code obfuscation.
Assembly
64
star
27

Codeine

Mac OS X IDE For Clang/LLVM
Objective-C
62
star
28

CFPP

C++ wrapper for CoreFoundation base classes.
C
60
star
29

trash

macOS command line tool to move files to trash
Swift
57
star
30

MP4Parse

C++ library for MP4 file parsing.
C++
57
star
31

GameOfLife

Conway's Game of Life macOS app.
Swift
50
star
32

macho

Mach-O file parser.
C++
48
star
33

Objective-CPP

C++ compatibility library for Objective-C - Objective-CPP is a library intended to ease software development using Objective-C++. It declares categories on Objective-C classes, to work with the STL C++ types, such as std::string, std::vector, etc.
Objective-C++
44
star
34

EOSFTPServer

A project to create a complete, standard compliant, multi-user, Objective-C (Mac OS X / iOS) FTP server.
Objective-C
35
star
35

dyld-cache-dump

A macOS command-line tool to dump the contents of dyld shared cache files.
Swift
32
star
36

Manual

Manual is a GUI front-end for the UNIX manual pages.
Objective-C
31
star
37

PropertyListEditor

macOS PropertyList Editor
Swift
30
star
38

CPP-ARC

C++ Automatic Reference Counting - This project intends to simplify memory management in C++, using reference counting.
C
26
star
39

host-manager

A command-line utility to manage the /etc/hosts file.
Makefile
26
star
40

CoreFoundation

Custom implementation of Apple's CoreFoundation framework intended to be used in the XEOS operating system as a base for its Objective-C library.
C
25
star
41

XS-Labs-Style-Guide

XS-Labs Coding Style Guide for C, C++, Objective-C and x86 Assembly
22
star
42

gmock-xcode

Xcode integration for GoogleMock through XCTest
C++
22
star
43

xcode-coveralls

coveralls.io support for Xcode
C
22
star
44

MetaCopy

A macOS application for copying metadata to images.
Swift
21
star
45

XSFoundation

The XEOS C Foundation library provides the base for object-oriented C style coding, reference counting memory management with auto-release capabilities, reflection, runtime environment, polymorphism, and basic objects.
C
20
star
46

dlib

Dynamic loading library for C/C++
C++
20
star
47

UIKit-CXX

Simple UIKit application written in C++ using the OBJCXX library.
C++
18
star
48

Lottie-Preview

A macOS application to display previews of Lottie animations.
Swift
18
star
49

xrun

Drop-in replacement for xcodebuild/xctool
Objective-C
17
star
50

ICNS2ICO

ICNS2ICO lets you easily convert icons from the Apple's ICNS format to the Windows ICO format.
Objective-C
17
star
51

CPPAtomic

Replacement of std::atomic supporting non trivially-copyable types
C++
15
star
52

ELFDump

ELFDump is a C parser for ELF64 object files.
C
15
star
53

ULog

Unified cross-platform logging framework for C, C++, Objective-C, Swift, ASL and C#.
Objective-C
14
star
54

XS-Computer-One

Apple 1 Replica Project
14
star
55

statusbar

Statusbar for your terminal.
C++
13
star
56

SMC-Reader

Swift
12
star
57

Bin-Build

Bin-Build is a small shell script to simplify compiling source file in C, C++ and Objective-C.
Shell
12
star
58

PhotoConverter

A macOS application to convert images into various formats.
Swift
12
star
59

makelib

Generic cross-platform makefile for building C/C++/Objective-C libraries.
Makefile
12
star
60

fatdump

A command line tool to extract data from FAT disk images.
C
11
star
61

HexPrint

HexPrint is a command line tool that displays a file's content as an hexadecimal dump.
C
11
star
62

PIMPL

Generic C++11 PIMPL implementation
C++
11
star
63

MachOKit

Swift framework for parsing Mach-O files.
10
star
64

Creatures-Evolution

Creatures Evolution
Swift
10
star
65

action-slack

GitHub Action to send Slack notifications.
JavaScript
10
star
66

xcconfig

xcconfig files
Shell
10
star
67

vbox-monitor

Monitoring/Debug tool for VirtualBox.
C++
9
star
68

CrashGuard

Cross-platform crash handling library.
C++
9
star
69

objc-uti

Objective-C wrapper for Uniform Type Identifiers (UTIs)
Objective-C
9
star
70

CPPNotifications

C++ Notification System - CPPNotifications is a Cocoa like (Objective-C) notification system for C++ (POSIX and Windows).
C++
9
star
71

STDThreadKit

C++ std::thread API for Swift.
Objective-C
9
star
72

PropEdit

Old macOS application to manage file permissions and ACLs
Objective-C
9
star
73

dotfiles

Various configuration files I use.
Vim Script
8
star
74

XSDocgen

An Apple-like documentation generator for C, C++ and Objective-C based on HeaderDoc.
PHP
8
star
75

StringsDuplicates

This is a very simple command line program to find duplicate string labels in .strings files.
C
8
star
76

XSTest

C++ unit testing library
C++
8
star
77

find-string

Find strings in executables
Swift
7
star
78

DeviceMonitor

Aborted project for a Device Monitor iOS app. Never published - No longer developed nor maintained.
Objective-C
7
star
79

CoreFoundation-550.42

Apple's Core Foundation - Version 550.42
C
7
star
80

Uncrustifier

Swift
7
star
81

Magic-MakeFile

The goal of the Magic MakeFile is to provide developers with an automated build system, that can be used for various compiled projects, and easily configured to suit the projects' needs.
Makefile
7
star
82

YouplaBoum

Like Tinder, but for your photos...
Swift
7
star
83

FlashPro

A flash-light iOS application with morse capabilities. This app used to be on the AppStore, but was removed as I'm no longer developing it nor maintaining it.
Objective-C
7
star
84

SMJobBless

Demo project for SMJobBless.
Swift
6
star
85

Code-Tests

Miscellaneous code test in various languages.
C
6
star
86

ProcessRenicer

Old macOS application to change priority of processes
Objective-C
6
star
87

NutShell

NutShell was a Mac OS X framework intended to ease the development of Mac OS X application, providing useful low-level classes and UI components. The project was started around 2010. It is no longer developed, nor maintained.
Objective-C
6
star
88

MOS-6502-Emulator

A MOS 6502 Emulator written in Swift
Swift
6
star
89

LZWM

LZW compression utility.
C
6
star
90

AppKit-CXX

Simple AppKit application written in C++ using the OBJCXX library.
C++
6
star
91

SensorsKit

Swift
6
star
92

homebrew-tap

Homebrew formulae for XS-Labs projects.
Ruby
6
star
93

OBJC4-437.1-Runtime

Apple's Objective-C Runtime - Version 437.1
Objective-C
6
star
94

MEMDebug

MEMDebug is a C library allowing to trace, inspect and debug the dynamic memory allocations inside a C program.
C
6
star
95

XcodeFormat

Swift
6
star
96

Dispatch

C++ Dispatch Queue.
C++
6
star
97

STDC

Standardisation of the C (C89, C95, C99) and POSIX header files.
C++
6
star
98

LibC-String-Optimisations

Heavily optimised versions of the string functions from the C standard library, for x86 and x86_64 platforms, developed for the XEOS Operating System.
Assembly
6
star
99

Fetcher

macOS status bar app to automatically fetch Git repositories.
Swift
6
star
100

SDO

Latest solar images from NASA's SDO - Solar Dynamics Observatory
Swift
6
star