pkpassは、Apple Walletが搭乗券やポイントカード、クーポン、イベントチケットなどのパスに使用するファイル形式です。アプリでも画像でもありません。特定の構造を持つ署名付きZIPアーカイブであり、中身を理解してしまえば、Walletパスに関する疑問の大半はおのずと解けます。
pkpassファイルの中身:実際に入っているもの
.pkpassファイルの拡張子を.zipに変更して展開すると、少数のファイル群が見つかります。重要なのは次の4つです。
- pass.json — パスそのものです。フィールド、色、バーコード、表面と裏面に表示されるテキストが含まれます。ここで搭乗券は搭乗券に、コーヒーカードはコーヒーカードになります。
- manifest.json — アーカイブ内のすべてのファイルとそれぞれのSHA-1ハッシュを列挙したリストです。改ざんされていないことを証明するチェックシートの役割を果たします。
- signature — マニフェストに対する暗号署名で、Apple発行の証明書を使って生成されます。Walletがパスを信頼できるのはこの部分のおかげです。有効な署名がなければ、パスは成立しません。
- 画像 — icon.png、logo.png、そしてstripやサムネイル画像で、通常は画面解像度に応じて1x、2x、3xの3種類が用意されます。
これがパッケージのすべてです。デザインはpass.jsonに、画像はその隣に置かれ、マニフェストと署名はバンドルが本物であり改変されていないことを証明するために存在します。あえて地味で、検証可能な構造にしてあるわけです。
作成にApple Developerアカウントは必要か
結論から言うと、作るには必要、受け取るには不要です。
署名ファイルこそがアカウントを必須にしている要因です。署名にはPass Type ID証明書が必要で、これはApple Developer Programのアカウントを通じてのみ取得できます。年会費は99米ドル(日本円で概ね1万5千円前後、為替により変動)です。この証明書がなければ、他のファイルをすべて正しく組み立てても、Walletは発行元を検証できないためパスを拒否します。
顧客側にはこうした準備は一切不要です。デベロッパーアカウントが必要なのは発行元、つまりパスを作成・署名する事業者側であり、パスをスマートフォンに追加する側の人ではありません。相手は追加をタップするだけです。証明書まわりの作業は一度きり、パスが誰かの手に届くよりずっと前に、事業者側で完結しています。情シス部門の審査を経て導入するケースでも、この証明書発行と管理の主体が明確に事業者側にあるという点は説明しやすいポイントです。
pkpassと一般的な「ウォレットパス」の違い
「ウォレットパス」という言葉は曖昧に使われがちなので、ここで整理しておきます。pkpassはApple独自の形式です。Google WalletはまったくAppleとは異なる仕組みで動いており、ダウンロードする署名付きファイルではなく、APIを通じて定義されたパスオブジェクトをベースにしています。
つまりpkpassは「ウォレットパス」の一種であり、Apple版にすぎません。両方のプラットフォーム向けに開発する場合、同じ元データからApple用のpkpassとGoogle Wallet用のオブジェクトをそれぞれ生成することになり、どこでも通用する1つのファイルにはなりません。顧客から見れば同じ体験でも、裏側の技術的な経路は2つに分かれています。日本ではiOSのシェアが高い一方でAndroidユーザーも一定数存在するため、両プラットフォームへの対応を最初から視野に入れておく価値があります。
pkpassファイルを開く・検証する方法
出荷前にパスを確認するための、実践的な方法をいくつか紹介します。
- iPhoneやMacでは、ファイルをダブルタップまたは開くだけで、Walletが顧客に見えるのとまったく同じプレビューを表示します。
- 中身を確認したい場合は、ファイル名を.zipに変更して展開し、任意のテキストエディタでpass.jsonを開きます。フィールド、色、バーコードの値を確認する最も速い方法です。
- 署名を検証するには、Appleのsignpassツールや各種オンラインのパス検証ツールを使うと、マニフェストと証明書が正しいかどうかを確認できます。自分の端末でプレビューが問題なく表示されても、署名に不備があれば他の人の端末では失敗することがあります。
ファイル形式そのものを意識しない選択肢
Walletパスを必要とする人の多くは、pass.jsonを直接編集したり、署名証明書を管理したり、マニフェストのハッシュ不整合をデバッグしたりしたいとは思っていません。求めているのは、顧客が追加でき、データが変わればきちんと更新されるカードです。形式はあくまで手段であり、目的ではありません。
.pkpass形式に一切触れる必要はありません。署名とパッケージングはPushwooshが担い、あなたはカードのデザインに専念できます。詳細はWallet Passesをご覧ください。
よくある質問
標準では開けません。pkpassはApple独自の形式であり、AndroidのGoogle Walletは直接読み込めません。一部のサードパーティアプリでインポートできる場合もありますが、正しいクロスプラットフォーム対応は、同じデータから生成したGoogle WalletパスをApple用パスと並行して発行することです。
いいえ。アプリはスマートフォン上で動作するソフトウェアですが、pkpassはコードを一切持たず、Wallet内に収まるデータファイルです。App Storeからインストールするものは何もなく、実行されるものもありません。情報を表示し、発行元がデータを変更すれば更新される、それだけがpkpassの役割です。