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