Skip to content

Commit 333d356

Browse files
committed
Updated README and use 2.0.0.pre.beta.3
1 parent 69766f4 commit 333d356

File tree

3 files changed

+62
-64
lines changed

3 files changed

+62
-64
lines changed

README.md

Lines changed: 60 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,26 @@
11
# motion-sparkle-sandbox
22

3-
Easily package and release updates of your RubyMotion app with Sparkle.
4-
5-
*NB: Sparkle only works for OS X projects*
6-
7-
## Sandboxing
8-
9-
This version uses the Sparkle 2.x to support an app that uses sandboxing. Sparkle 2.x is still in beta.
10-
11-
_Sparkle pulled from release https://github.com/sparkle-project/Sparkle/releases/tag/2.0.0-beta.2, built on on Sep 4th, 2021
12-
13-
[Reference thread](https://github.com/sparkle-project/Sparkle/issues/363)
3+
Easily package and release updates of your RubyMotion app with Sparkle 2 (includes support for sandboxed macOS applications).
144

155
## Table of Contents
166

177
- [motion-sparkle-sandbox](#motion-sparkle-sandbox)
18-
- [Sandboxing](#sandboxing)
198
- [Table of Contents](#table-of-contents)
209
- [Overview](#overview)
2110
- [Compatibility](#compatibility)
22-
- [Mac OS X 10.10 and above](#mac-os-x-1010-and-above)
2311
- [Installation](#installation)
2412
- [Settings configuration](#settings-configuration)
2513
- [Certificate configuration](#certificate-configuration)
26-
- [Generate new certificates](#generate-new-certificates)
27-
- [Use your existing certificates](#use-your-existing-certificates)
28-
- [Notes about the public certificate](#notes-about-the-public-certificate)
29-
- [Notes about the private certificate](#notes-about-the-private-certificate)
30-
- [Warning regarding your private certificate](#warning-regarding-your-private-certificate)
31-
- [Run `rake sparkle:setup` at any moment to make sure your config is OK](#run-rake-sparklesetup-at-any-moment-to-make-sure-your-config-is-ok)
3214
- [Adding "Check for updates..." to the menu](#adding-check-for-updates-to-the-menu)
3315
- [First publication](#first-publication)
3416
- [Releasing updates](#releasing-updates)
35-
- [1. Bump the version](#1-bump-the-version)
36-
- [2. Build your app for release](#2-build-your-app-for-release)
37-
- [3. Update your Release Notes](#3-update-your-release-notes)
38-
- [4. Package the release](#4-package-the-release)
39-
- [5. Upload](#5-upload)
4017
- [Help, Limitations, Troubleshooting and Testing](#help-limitations-troubleshooting-and-testing)
4118
- [Contributing](#contributing)
4219
- [Credits](#credits)
4320

4421
## Overview
4522

46-
[Sparkle](http://sparkle.andymatuschak.org/) powers the "Check for updates" feature of countless Mac applications.
23+
[Sparkle](https://sparkle-project.org) powers the "Check for updates" feature of countless Mac applications.
4724

4825
In a nutshell, when users click "Check for updates..." in an app, Sparkle checks for available updates against an XML file that you post somewhere on the web. That XML file contains information about your new release, such as the version number, the URL of the package and its digital signature. If there's a newer version available than the one that is currently running, it'll ask for permission to retrieve the package and replace the current app with the new release.
4926

@@ -53,27 +30,34 @@ After building your app for release and running `rake sparkle:package`, all you
5330

5431
## Compatibility
5532

56-
### Mac OS X 10.10 and above
33+
### Mac OS X 10.11 and above
5734

58-
* Use the latest version of **motion-sparkle-sandbox**
59-
* You will need RubyMotion version 2.38 or above for Yosemite compatibility
60-
* Sparkle only supports Mac OS X 10.10 Yosemite and above
35+
- Use the latest version of **motion-sparkle-sandbox**
36+
- You will need RubyMotion version 5.0 or above
37+
- Sparkle 2 now requires Mac OS X 10.11 El Capitan) or later
6138

6239
## Installation
6340

6441
In your project's Gemfile, add:
42+
6543
```ruby
6644
# Gemfile
6745

68-
gem 'motion-sparkle'
46+
gem 'motion-sparkle-sandbox'
6947
```
48+
7049
and then run
7150

72-
$ bundle install
51+
```bash
52+
bundle install
53+
```
54+
55+
`motion-sparkle-sandbox` uses the version of [Sparkle 2 on Cocoapods.org](https://cocoapods.org/pods/Sparkle). This gem no longer includes a copy of Sparkle.
7356

7457
## Settings configuration
7558

76-
Configure Sparkle in your `Rakefile` using `motion-sparkle-sandbox`'s DSL:
59+
Configure Sparkle 2 in your `Rakefile` using `motion-sparkle-sandbox`'s DSL:
60+
7761
```ruby
7862
# Rakefile
7963

@@ -110,32 +94,36 @@ end
11094

11195
To complete the configuration, run
11296

113-
$ rake sparkle:setup
114-
97+
```plaintext
98+
rake sparkle:setup
99+
```
115100

116101
If everything is OK, you should be informed that it's time to generate or configure your certificates.
117102

118103
## Certificate configuration
119104

120-
For security, Sparkle allows you to sign your releases with a private certificate before distribution: when the user tries to install an update, Sparkle will check the package using the signature provided in the XML file and the public certificate contained in the running application.
105+
For security, Sparkle 2 allows you to sign your releases with a private certificate before distribution: when the user tries to install an update, Sparkle 2 will check the package using the signature provided in the XML file and the public certificate contained in the running application.
121106

122-
motion-sparkle-sandbox makes it very easy to handle this. In fact, after the first setup, it becomes completely transparent to you as all is handled when you run `rake sparkle:package`.
107+
_Currently, `motion-sparkle-sandbox` does not support configuring `EdDSA` signatures, only `DSA`._
123108

124-
You have two options: have Sparkle generate the certificates for you, or follow the instructions to use your existing ones.
109+
`motion-sparkle-sandbox` makes it very easy to handle this. In fact, after the first setup, it becomes completely transparent to you as all is handled when you run `rake sparkle:package`.
125110

126-
### Generate new certificates
111+
You have two options: have Sparkle 2 generate the certificates for you, or follow the instructions to use your existing ones.
127112

128-
$ rake sparkle:setup_certificates
113+
### Generate new certificates
129114

115+
```bash
116+
rake sparkle:setup_certificates
117+
```
130118

131119
### Use your existing certificates
132120

133121
By default, your certificates need to be placed in the following directories:
134122

135-
136-
./resources/dsa_pub.pem # public certificate
137-
./sparkle/config/dsa_priv.pem # private certificate
138-
123+
```plaintext
124+
./resources/dsa_pub.pem # public certificate
125+
./sparkle/config/dsa_priv.pem # private certificate
126+
```
139127

140128
### Notes about the public certificate
141129

@@ -150,8 +138,9 @@ The private certificate cannot be renamed nor placed elsewhere. If you have an e
150138
Be careful when handling the private certificate: you should never lose it nor share it. If you do, you'd lose the ability to sign your packages and users wouldn't be able to update your app. If someone takes it, they could sign the packages in your name and have your users install who knows what.
151139

152140
Tips:
153-
* add it go your `.gitignore` or equivalent
154-
* make a backup of it
141+
142+
- add it go your `.gitignore` or equivalent
143+
- make a backup of it
155144

156145
### Run `rake sparkle:setup` at any moment to make sure your config is OK
157146

@@ -161,7 +150,7 @@ When all is good, move forward. If you need help, you can always open an issue o
161150

162151
Sparkle makes it incredibly easy to add a "Check for updates" feature to your app.
163152

164-
Sparkle's `SUUpdater` class has a shared updater instance that can serve as a `target` for Sparkle actions. To launch the typical Sparkle flow, call the `checkForUpdates:` action.
153+
Sparkle's `SUUpdater` class has a shared updater instance that can serve as a `target` for Sparkle actions. To launch the typical Sparkle 2 flow, call the `checkForUpdates:` action.
165154

166155
So, to launch the "Check for updates" flow, you can call `SUUpdater.new.checkForUpdates`.
167156

@@ -170,6 +159,7 @@ Here's an example based on the RubyMotion default OS X app example, "Hello". You
170159
This will add the classic "Check for updates..." entry on the menu; when the user clicks it, the nice default of experience of Sparkle will begin.
171160

172161
In `menu.rb`, right below the line that adds the "Preferences" item:
162+
173163
```ruby
174164
sparkle = addItemWithTitle("Check for updates...", action: nil, keyEquivalent: '')
175165
sparkle.setTarget SUUpdater.new
@@ -186,11 +176,15 @@ Note that packaging with motion-sparkle-sandbox only works with the `:release` t
186176

187177
Run the setup command again to make sure it's all good:
188178

189-
$ rake sparkle:setup
179+
```bash
180+
rake sparkle:setup
181+
```
190182

191183
If you're ready to go, run the `sparkle:package` task:
192184

193-
$ rake sparkle:package
185+
```bash
186+
rake sparkle:package
187+
```
194188

195189
This should create 3 files inside the `sparkle/release/` folder: a ZIP file of your app, an XML file and an HTML file with the release notes.
196190

@@ -214,7 +208,9 @@ To do so, follow the same steps every time:
214208

215209
### 2. Build your app for release
216210

217-
$ rake build:release
211+
```bash
212+
rake build:release
213+
```
218214

219215
### 3. Update your Release Notes
220216

@@ -226,7 +222,9 @@ You can either change these files inside the `sparkle/config/` folder, or simply
226222

227223
Run the `sparkle:package` task and you'll be one step away from distribution.
228224

229-
$ rake sparkle:package
225+
```bash
226+
rake sparkle:package
227+
```
230228

231229
### 5. Upload
232230

@@ -236,18 +234,20 @@ Sparkle for the win.
236234

237235
## Help, Limitations, Troubleshooting and Testing
238236

239-
If you need further help, please open an [Issue on Github](https://github.com/digitalmoksha/motion-sparkle-sandbox/issues/).
237+
If you run into difficulties using Sparkle 2, make sure you review the [documentation](https://sparkle-project.org/documentation/) on [sparkle-project.org](https://sparkle-project.org). You can also search and open issues on https://github.com/sparkle-project/Sparkle/issues
238+
239+
If you run into difficulties with `motion-sparkle-sandbox`, please open an [Issue on Github](https://github.com/digitalmoksha/motion-sparkle-sandbox/issues/).
240+
240241

241242
Limitations:
242243

243-
* Only tested with Ruby 1.9.3-p448
244-
* Only works with ZIP files
245-
* Only works with :release build target
246-
* The Sparkle framework is horrendously copied multiple times
244+
- Only tested with Ruby 2.7.2
245+
- Only works with ZIP files
246+
- Only works with :release build target
247247

248-
To further troubleshoot your case, you clone/fork the repo and go through the tests and the code.
248+
To further troubleshoot your case, you can clone/fork the repo and go through the tests and the code.
249249

250-
To test, you can just run `$ bundle install` at the source of the repo to install the development dependencies and the run `$ rake` to execute the tests.
250+
To test, you can just run `bundle install` at the source of the repo to install the development dependencies and then run `rake spec` to execute the tests.
251251

252252
Test coverage currently only extends to configuration and certificate generation checking.
253253

@@ -257,8 +257,6 @@ Please do help with comments, issues and pull requests! The gem's repository is
257257

258258
## Credits
259259

260-
Contributors: [View all on Github](https://github.com/digitalmoksha/motion-sparkle-sandbox/graphs/contributors)
261-
262-
Originally created by [Alexandre L. Solleiro](http://github.com/webcracy), and forked from [webcracy/motion-sparkle](https://github.com/webcracy/motion-sparkle)
263-
264-
Huge thanks to [andymatuschak/Sparkle](https://github.com/andymatuschak/Sparkle) for creating and continuing to maintain Sparkle!
260+
- Contributors: [View all on Github](https://github.com/digitalmoksha/motion-sparkle-sandbox/graphs/contributors)
261+
- Originally created by [Alexandre L. Solleiro](http://github.com/webcracy), and forked from [webcracy/motion-sparkle](https://github.com/webcracy/motion-sparkle)
262+
- Huge thanks to [Andy Matuschak](https://andymatuschak.org) for creating Sparkle and to the [group of developers](https://github.com/orgs/sparkle-project/people) that maintain Sparkle!

lib/motion-sparkle-sandbox.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
lib_dir_path = File.dirname(File.expand_path(__FILE__))
1717

18-
POD_VERSION = '~> 2.0.0-beta.2'
18+
POD_VERSION = '~> 2.0.0-beta.3'
1919

2020
unless @running_specs
2121
Motion::Project::App.setup do |app|

lib/motion-sparkle-sandbox/version.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# frozen_string_literal: true
22

33
module MotionSparkleSandbox
4-
VERSION = '2.0.0.pre.beta.2'
4+
VERSION = '2.0.0.beta.3'
55
end

0 commit comments

Comments
 (0)