1. Just add this gem to your RubyMotion project, and your app icons will get stamped!
App Icon Before:
App Icon After:
2. If you don't have an icon, we will automatically provide one.
3. Removal
This gem will intelligently omit itself from your archive builds, but you can also do it manually via rake.
$ rake rubberstamp:revert
4. TADAAA!
This is aimed at being a development tool, it will create an
overlay for your iOS app icon that includes your version, commit
and branch information so you can know exactly what version of
your app is running on your device, or so that beta testers can
easily report which version they are running. If your icons don't
need to be updated, the motion-rubberstamp won't do anything.
Installation
Gemfile Install
Add this line to your RubyMotion app's Gemfile:
gem 'motion-rubberstamp'
And then execute:
$ bundle
Manual Install
Or install it manually as:
$ gem install motion-rubberstamp
and add to your RubyMotion app's Rakefile
require 'motion-rubberstamp'
Dependencies
This gem also relies on imagemagick and ghostscript, which
can easily be installed via Homebrew:
$ brew install imagemagick
$ brew install ghostscript
Usage
Installing the Gem is all that's needed to get started.
Motion-rubberstamp adds itself to the build process, so whenever you run rake
or rake device
it will
automatically invoke rake rubberstamp:run
beforehand.
Smart Cleanup: When you run rake archive
or rake archive:distribution
, motion-rubberstamp will automatically invoke
rake rubberstamp:revert
. This means that development builds will now automatically receive overlays and
release builds will use your original icons.
Rake Tasks
You can also manually invoke motion-rubberstamp at any time with:
$ rake rubberstamp:run
Or to remove the overlays and restore your original icons, you can run
$ rake rubberstamp:revert
Notes
The iOS Simulator is trying to cache your app icons. For this reason we've put in a significant step that
will refresh your simulator automatically by closing it, should the stamps be updated. This is a small but notable necessary evil.
our build detects that it needs to restamp. It's a small but notable necessary evil.
Motion-rubberstamp currently only checks for app icons in the /resources
path, regardless of what your Rakefile is configured for.
Motion-rubberstamp will only run if your version or git information has changed to prevent invoking
ImageMagick and pals more than necessary.
Uninstall
Bye?
Rubberstamp will not stamp your archive/production apps. No need to leave us like that! But if you must...
To uninstall, simply run rake rubberstamp:revert
to restore your original icons, then
delete motion-rubberstamp from your gemfile or rakefile.
Changing Icons?
If you have our starter icon, or you've changed your mind on your icon it's easy to switch!
Run rake rubberstamp:revert
and then copy in your new icons to your resource folder.
Contributing
I've probably made the file management more difficult and rigid than it needs to be, and I have no
clue how to write tests for this. But I'll gladly accept any help that's offered.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Thanks
As brought to our attention, this was also done by Clay's Allsopp!, in a most
elegant solution! We're hoping to continue progressing this gem to make sure it is useful and provides a wide array of
utility regardless :)
Many thanks to Krzysztof Zabłocki and Evan Doll for the idea and
implementation
details.