PassKit
Crystal shard for creating signed Apple Passes.
Installation
-
Add the dependency to your
shard.yml
:dependencies: passkit: github: place-labs/passkit
-
Run
shards install
Configuration
Configuration is achieved by specifying paths to various certificates private keys.
# Base64-encoded Pass certificate
export SIGNING_CERT=<...>
# Base64-encoded Pass key certificate
export PRIVATE_KEY=<...>
# Pass key certificate password (optional)
export PRIVATE_KEY_PASSWORD=purplemonkeydishwasher
# Base64-encoded Apple Worldwide Developer Relations Certification Authority certificate
export WWDR_CERT=<...>
Usage
require "passkit"
# Create a new pass definition
pass = PassKit::Pass.new(
pass_type_identifier: "pass.com.example",
organization_name: "Willy Wonka",
serial_number: "12345",
team_identifier: "TM123",
description: "The golden ticket",
logo_text: "Willy Wonka inc."
)
# Or ingest a pass.json
pass = PassKit::Pass.from_json(File.read("pass.json"))
# Now generate a signed .pkpass file
pk_pass = PassKit::PKPass.new(pass)
# Add some file or URL
pk_pass.add_file("icon.png", File.read("my_icon.png"))
pk_pass.add_url("http://example.org/icon.png")
# Do something with the generated file
File.write("GoldenTicket.pkpass", pk_pass.to_s)
Contributing
- Fork it (https://github.com/place-labs/passkit/fork)
- 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 a new Pull Request