Monthly Downloads: 1,370
Programming language: Ruby
License: MIT License
Tags: Passbook    
Latest version: v0.2.0

Dubai alternatives and similar libraries

Based on the "Passbook" category.
Alternatively, view Dubai alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Dubai or a related project?

Add another 'Passbook' Library



Passbook is an iOS 6 feature that manages boarding passes, movie tickets, retail coupons, & loyalty cards. Using the PassKit API, developers can register web services to automatically update content on the pass, such as gate changes on a boarding pass, or adding credit to a loyalty card.

Dubai makes it easy to generate .pkpass from a script or the command line, allowing you to rapidly iterate on the design and content of your passes, or generate one-offs on the fly.

Pairs nicely with Rack::Passbook.

Dubai is named for Dubai, UAE, a center of commerce and trade (and as Dave Rupert was all-too-eager to point out, an unfortunate pun on "Do Buy!"). It's part of a series of world-class command-line utilities for iOS development, which includes Cupertino (Apple Dev Center management), Shenzhen (Building & Distribution), Houston (Push Notifications), Venice (In-App Purchase Receipt Verification), and Nashville (iTunes Store API).


$ gem install dubai


require 'dubai'

Dubai::Passbook.certificate, Dubai::Passbook.password = "/path/to/certificate.p12", "..."

# Example.pass is a directory with files "pass.json", "icon.png" & "[email protected]"
File.open("Example.pkpass", 'w') do |f|
  f.write Dubai::Passbook::Pass.new("Example.pass").pkpass.string

Command Line Interface

Dubai also comes with the pk binary, which provides a convenient way to generate and preview passes

$ pk generate Example.pass -T boarding-pass

Dubai comes with templates for all of the different Passbook layouts:

  • boarding-pass
  • coupon
  • event-ticket
  • store-card
  • generic

Build a .pkpass file (which can previewed with a drag-and-drop onto the iOS Simulator):

$ pk build Example.pass -c /path/to/certificate.p12

...or serve them from a webserver (which can be previewed by visiting the address on a device or the simulator):

$ pk serve Example.pass -c /path/to/certificate.p12
$ open http://localhost:4567/pass.pkpass

Specify a -H / --host option to bind the server to a particular host. Binding on will listen for all incoming connections on the local network, such as an iPhone or iPad:

$ pk serve Example.pass -H


Mattt Thompson (@mattt)


Dubai is available under the MIT license. See the LICENSE file for more info.

*Note that all licence references and agreements mentioned in the Dubai README section above are relevant to that project's source code only.