motion-sparkle 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +66 -31
- data/lib/motion/project/package.rb +1 -1
- data/lib/motion/project/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MmIwNjFhMTJjNmNlNTYyZGQwNzNhMjNmZmNiNjA1MTM1Y2EzNzI1Mw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YzVjY2U3YmNjNzNiMjkyOTJkMDU3ZDEzNjRlN2QxNTMxMTkyZjBhZg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTFhMTIwMzkwMmIxODI2MzAzMTAyZDUzNTRkMDU5MWFhM2ZkNmE1YjE4OTgx
|
10
|
+
YTc1NjRhZGFiMjdkOWU3MzYwYWM3ZWRhM2I2NGEwNWI3NjI0YTJkZDQwMWY5
|
11
|
+
ZTRjN2JhYjI3Njc4NzZkNDA2NzE3MTgwZDRlZTRkMjM1OTRkYmE=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
M2MxYTNiYWQ5ZmFhNjA1ODI0OThkZWI4MGZmN2JlNDljNzY3ZmIyODc0ZGM5
|
14
|
+
NTY0NTZlNzhmOWE5ZjBhYzRjMWFjMDNkNzhkOWM0M2Y3MDI1MjlmOGI0NWI0
|
15
|
+
ZjcxYzM5MTE1M2E2NTJhNWMwOTlkMTM0MjBkYWM0Nzc1MzhmMzI=
|
data/README.md
CHANGED
@@ -1,14 +1,38 @@
|
|
1
|
-
#
|
1
|
+
# motion-sparkle
|
2
|
+
|
3
|
+
Easily package and release updates of your RubyMotion app with Sparkle.
|
2
4
|
|
3
5
|
*NB: Sparkle only works for OS X projects*
|
4
6
|
|
5
|
-
|
7
|
+
**Table of Contents**
|
8
|
+
|
9
|
+
- [Overview](#overview)
|
10
|
+
- [Installation](#installation)
|
11
|
+
- [Settings configuration](#settings-configuration)
|
12
|
+
- [Certificate configuration](#certificate-configuration)
|
13
|
+
- [Generate new certificates](#generate-new-certificates)
|
14
|
+
- [Use your existing certificates](#use-your-existing-certificates)
|
15
|
+
- [Notes about the public certificate](#notes-about-the-public-certificate)
|
16
|
+
- [Notes about the private certificate](#notes-about-the-private-certificate)
|
17
|
+
- [Warning regarding your private certificate](#warning-regarding-your-private-certificate)
|
18
|
+
- [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)
|
19
|
+
- [Adding "Check for updates..." to the menu](#adding-check-for-updates-to-the-menu)
|
20
|
+
- [First publication](#first-publication)
|
21
|
+
- [Releasing updates](#releasing-updates)
|
22
|
+
- [1. Bump the version](#1-bump-the-version)
|
23
|
+
- [2. Build your app for release](#2-build-your-app-for-release)
|
24
|
+
- [3. Update your Release Notes](#3-update-your-release-notes)
|
25
|
+
- [4. Package the release](#4-package-the-release)
|
26
|
+
- [5. Upload](#5-upload)
|
27
|
+
- [Help, Limitations, Troubleshooting and Testing](#help-limitations-troubleshooting-and-testing)
|
28
|
+
- [Contributing](#contributing)
|
29
|
+
- [Credits](#credits)
|
6
30
|
|
7
|
-
|
31
|
+
## Overview
|
8
32
|
|
9
|
-
In a nutshell, when users click "Check for updates..." in an app, Sparkle checks for 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.
|
33
|
+
[Sparkle](http://sparkle.andymatuschak.org/) powers countless Mac applications' "Check for updates" feature. In a nutshell, when users click "Check for updates..." in an app, Sparkle checks for 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.
|
10
34
|
|
11
|
-
While it's easy to use Sparkle with RubyMotion without motion-sparkle,
|
35
|
+
While it's easy to use Sparkle with RubyMotion without motion-sparkle, it's even easier if you use it. The gem takes care of the Sparkle framework integration, simplifies its configuration and then automates the preparation of a release, creating a ZIP file, XML and release notes for you.
|
12
36
|
|
13
37
|
After building your app for release and running `rake sparkle:package`, all you need to do is upload 3 files to an URL you specified in the Rakefile and your users will be able to get the new release.
|
14
38
|
|
@@ -16,9 +40,11 @@ After building your app for release and running `rake sparkle:package`, all you
|
|
16
40
|
|
17
41
|
In your project's Gemfile, add:
|
18
42
|
|
19
|
-
|
43
|
+
gem 'motion-sparkle'
|
20
44
|
|
21
|
-
and then run
|
45
|
+
and then run
|
46
|
+
|
47
|
+
$ bundle install
|
22
48
|
|
23
49
|
## Settings configuration
|
24
50
|
|
@@ -52,11 +78,11 @@ If everything is OK, you should be informed that it's time to generate or config
|
|
52
78
|
|
53
79
|
## Certificate configuration
|
54
80
|
|
55
|
-
For security, Sparkle allows you to sign your releases with a private certificate before distribution
|
81
|
+
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.
|
56
82
|
|
57
|
-
motion-sparkle makes it very easy to handle this. In fact, after the first setup, it becomes completely transparent to you
|
83
|
+
motion-sparkle 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`.
|
58
84
|
|
59
|
-
You have two options: have Sparkle generate the certificates for you, or follow the instructions.
|
85
|
+
You have two options: have Sparkle generate the certificates for you, or follow the instructions to use your existing ones.
|
60
86
|
|
61
87
|
### Generate new certificates
|
62
88
|
|
@@ -85,10 +111,10 @@ The private certificate cannot be renamed nor placed elsewhere. If you have an e
|
|
85
111
|
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.
|
86
112
|
|
87
113
|
Tips:
|
88
|
-
* add it go your
|
114
|
+
* add it go your `.gitignore` or equivalent
|
89
115
|
* make a backup of it
|
90
116
|
|
91
|
-
### Run `rake:setup` at any moment to make sure your config is OK
|
117
|
+
### Run `rake sparkle:setup` at any moment to make sure your config is OK
|
92
118
|
|
93
119
|
When all is good, move forward. If you need help, you can always open an issue on Github.
|
94
120
|
|
@@ -96,11 +122,11 @@ When all is good, move forward. If you need help, you can always open an issue o
|
|
96
122
|
|
97
123
|
Sparkle makes it incredibly easy to add a "Check for updates" feature to your app.
|
98
124
|
|
99
|
-
|
125
|
+
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.
|
100
126
|
|
101
|
-
So,
|
127
|
+
So, to launch the "Check for updates" flow, you can call `SUUpdater.new.checkForUpdates`.
|
102
128
|
|
103
|
-
Here's an example based on the
|
129
|
+
Here's an example based on the RubyMotion default OS X app example, "Hello". You can check out Sparkle's documentation for more details and further ways to customize the experience.
|
104
130
|
|
105
131
|
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.
|
106
132
|
|
@@ -110,19 +136,19 @@ In `menu.rb`, right below the line that adds the "Preferences" item:
|
|
110
136
|
sparkle.setTarget SUUpdater.new
|
111
137
|
sparkle.setAction 'checkForUpdates:'
|
112
138
|
|
113
|
-
Once you build your application, you should be able to see a "Check for updates..." item in the Application menu.
|
114
|
-
|
115
|
-
Check out Sparkle's documentation for more details and further ways to customize the experience.
|
139
|
+
Once you build your application, you should be able to see a "Check for updates..." item in the Application menu. Using it will work but will quickly produce an error. Keep going to make it work.
|
116
140
|
|
117
141
|
## First publication
|
118
142
|
|
119
|
-
Before you build, make sure you've set your `:base_url` to a destination where you can upload/download your files.
|
143
|
+
Before you build, make sure you've set your `:base_url` to a destination where you can upload/download your files.
|
144
|
+
|
145
|
+
Note that packaging with motion-sparkle only works with the `:release` target at the moment, so make sure your build with be compatible with `rake build:release`.
|
120
146
|
|
121
|
-
Run the setup command
|
147
|
+
Run the setup command again to make sure it's all good:
|
122
148
|
|
123
149
|
$ rake sparkle:setup
|
124
150
|
|
125
|
-
If you're ready to go,
|
151
|
+
If you're ready to go, run the `sparkle:package` task:
|
126
152
|
|
127
153
|
$ rake sparkle:package
|
128
154
|
|
@@ -146,7 +172,7 @@ To do so, follow the same steps every time:
|
|
146
172
|
|
147
173
|
### 2. Build your app for release
|
148
174
|
|
149
|
-
|
175
|
+
$ rake build:release
|
150
176
|
|
151
177
|
### 3. Update your Release Notes
|
152
178
|
|
@@ -185,22 +211,31 @@ Test coverage currently only extends to configuration and certificate generation
|
|
185
211
|
|
186
212
|
## Contributing
|
187
213
|
|
214
|
+
Please do help with comments, issues and pull requests!
|
215
|
+
|
216
|
+
I've made a list of features that I look forward to having. You can attack those or suprise me :)
|
217
|
+
|
188
218
|
Wanted features:
|
189
219
|
|
190
|
-
- [ ] Copy the Sparkle.framework in a more sensible way, ideally through Cocoapods (it's currently copied multiple times because rubygems won't handle symlinks)
|
191
|
-
- [ ] Configurable build targets (only :release supported currently)
|
192
|
-
- [ ] Have more than ZIP as a packaging option, with DMG a priority (see choctop gem)
|
193
|
-
- [ ] Automatic upload to S3 and via rsync/scp/sftp/ftp (see choctop gem)
|
194
|
-
- [ ] Textile / Markdown for release note templates
|
220
|
+
- [ ] [Issue #1](https://github.com/webcracy/motion-sparkle/issues/1) - Copy the Sparkle.framework in a more sensible way, ideally through Cocoapods (it's currently copied multiple times because rubygems won't handle symlinks)
|
221
|
+
- [ ] [Issue #2](https://github.com/webcracy/motion-sparkle/issues/2) - Configurable build targets (only :release supported currently)
|
222
|
+
- [ ] [Issue #3](https://github.com/webcracy/motion-sparkle/issues/3) - Have more than ZIP as a packaging option, with DMG a priority (see choctop gem)
|
223
|
+
- [ ] [Issue #4](https://github.com/webcracy/motion-sparkle/issues/4) - Automatic upload to S3 and via rsync/scp/sftp/ftp (see choctop gem)
|
224
|
+
- [ ] Textile / Markdown for release note templates if possible
|
195
225
|
- [ ] Ruby 1.8.7, Ruby 1.9.2, Ruby 2.0 compatibility
|
196
226
|
- [ ] Better test coverage
|
197
227
|
|
228
|
+
Thanks!
|
229
|
+
|
198
230
|
## Credits
|
199
231
|
|
200
232
|
Author: Alexandre L. Solleiro
|
201
233
|
|
202
|
-
*
|
203
|
-
*
|
204
|
-
*
|
234
|
+
* Twitter - http://twitter.com/als
|
235
|
+
* Github - http://github.com/webcracy
|
236
|
+
* Website - http://webcracy.org
|
237
|
+
|
238
|
+
Thanks to the authors and contributors of [HipByte/motion-cocoapods](https://github.com/HipByte/motion-cocoapods) and [drnic/choctop](https://github.com/drnic/choctop) gems, as I have looked for inspiration in their code.
|
239
|
+
|
240
|
+
And a low bow to [andymatuschak/Sparkle](https://github.com/andymatuschak/Sparkle)!
|
205
241
|
|
206
|
-
Thanks: Authors and contributors of HipByte/motion-cocoapods, drnic/choctop gems and of course andymatuschak/Sparkle. Their code has made this easier.
|
@@ -24,7 +24,7 @@ module Motion::Project
|
|
24
24
|
App.fail "Release already exists at ./#{sparkle_release_path}/#{zip_file} (remove it manually with `rake sparkle:clean`)"
|
25
25
|
end
|
26
26
|
FileUtils.cd(app_release_path) do
|
27
|
-
`zip -r #{zip_file} "#{app_file}"`
|
27
|
+
`zip -r "#{zip_file}" "#{app_file}"`
|
28
28
|
end
|
29
29
|
FileUtils.mv "#{app_release_path}/#{zip_file}", "./#{sparkle_release_path}/"
|
30
30
|
App.info "Create", "./#{sparkle_release_path}/#{zip_file}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-sparkle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexandre L. Solleiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: motion-sparkle makes it easy to use Sparkle with your RubyMotion projects
|
14
14
|
email: alex@webcracy.org
|