.pkpass는 애플월렛이 패스를 담는 데 쓰는 파일 형식입니다. 탑승권, 로열티 카드, 쿠폰, 이벤트 티켓 모두 이 형식으로 만들어집니다. 앱도 아니고 이미지도 아닙니다. 특정 구조를 갖춘 서명된 ZIP 압축 파일이며, 안에 무엇이 들어있는지 알고 나면 월렛 패스에 대한 궁금증 대부분이 저절로 풀립니다. 개인정보와 결제 관련 정보가 오가는 파일인 만큼, 이 구조가 왜 이렇게 설계됐는지는 보안 관점에서도 살펴볼 가치가 있습니다.
.pkpass 파일 내부: 실제로 무엇이 들어있나
.pkpass 파일의 확장자를 .zip으로 바꿔 압축을 풀면 몇 가지 파일이 나옵니다. 중요한 건 네 가지입니다.
- pass.json — 패스 그 자체입니다. 필드, 색상, 바코드, 앞뒤 면에 표시되는 텍스트가 여기 담깁니다. 탑승권이 탑승권다워지고 커피 카드가 커피 카드다워지는 지점입니다.
- manifest.json — 압축 파일 안의 모든 파일 목록과 각각의 SHA-1 해시값입니다. 변조 여부를 증명하는 체크섬 시트입니다.
- signature — 애플이 발급한 인증서로 만든, manifest에 대한 암호화 서명입니다. 월렛이 이 패스를 신뢰하게 만드는 부분입니다. 유효한 서명이 없으면 패스도 없습니다.
- 이미지 — icon.png, logo.png, 그리고 화면 배율에 맞춘 1x, 2x, 3x 해상도의 스트립이나 썸네일 이미지입니다.
이게 패키지의 전부입니다. 디자인은 pass.json에 있고, 이미지는 그 옆에 놓이며, manifest와 signature는 이 묶음이 진짜이고 변경되지 않았음을 증명하는 역할을 합니다. 의도적으로 단순하면서도 검증 가능한 컨테이너입니다.
만들려면 애플 개발자 계정이 필요한가요
짧게 답하면, 만들 때는 필요하고 받을 때는 필요 없습니다.
계정이 필요한 이유는 서명 파일 때문입니다. 이 서명은 Pass Type ID 인증서로 만들어야 하고, 이 인증서는 연 99달러인 애플 개발자 계정을 통해서만 발급받을 수 있습니다. 이 인증서가 없으면 나머지 파일을 아무리 정확히 만들어도 월렛은 패스를 거부합니다. 누가 발급했는지 검증할 수 없기 때문입니다.
고객은 이 과정을 전혀 알 필요가 없습니다. 개발자 계정은 패스를 만들고 서명하는 발급자, 즉 비즈니스 쪽에 필요한 요건이지, 폰에 패스를 추가하는 사람에게 필요한 게 아닙니다. 고객은 그저 추가를 누를 뿐입니다. 인증서 작업은 패스가 누군가에게 도달하기 훨씬 전, 발급자 쪽에서 한 번만 처리됩니다. 이런 서명·인증 체계는 개인정보보호법(PIPA)이 요구하는 수준의 데이터 취급과도 방향이 같습니다. ISO 27001 같은 국제 보안 인증을 갖춘 플랫폼을 통해 패스를 발급하면 이 부분을 직접 신경 쓸 필요가 없습니다.
.pkpass vs. 범용 월렛 패스
사람들은 “월렛 패스”라는 말을 느슨하게 씁니다. 그래서 짚고 넘어갈 필요가 있습니다. .pkpass는 구체적으로 애플의 형식입니다. 구글월렛은 완전히 다른 방식을 씁니다. 다운로드하는 서명 파일이 아니라, API를 통해 정의하는 패스 객체(pass object) 기반입니다.
즉 .pkpass는 월렛 패스의 한 종류, 애플 버전일 뿐입니다. 국내처럼 안드로이드 비중이 70% 안팎으로 iOS보다 훨씬 높은 시장에서 두 플랫폼 모두를 지원하려면, 같은 데이터를 바탕으로 애플용 .pkpass와 구글월렛 객체를 각각 만들어야 합니다. 어디서나 통하는 파일 하나로 끝나는 문제가 아닙니다. 고객이 겪는 경험은 비슷해도, 뒤에서 돌아가는 기술적 경로는 두 가지입니다.
.pkpass 파일을 여는 법과 테스트하는 법
배포하기 전에 확인해볼 만한 몇 가지 방법입니다.
- 아이폰이나 맥에서는 파일을 더블탭하거나 열면 월렛이 바로 미리보기를 보여줍니다. 고객이 보는 것과 정확히 같은 화면입니다.
- 내부 구조를 보려면 확장자를 .zip으로 바꿔 압축을 풀고, pass.json을 아무 텍스트 에디터로 열면 됩니다. 필드, 색상, 바코드 값을 확인하는 가장 빠른 방법입니다.
- 서명을 검증하려면 애플의 signpass 도구나 여러 온라인 패스 검증 도구로 manifest와 인증서가 정상인지 확인할 수 있습니다. 자신의 기기에서는 미리보기가 잘 되더라도, 서명에 문제가 있으면 다른 사람의 기기에서는 실패할 수 있습니다.
파일 형식 자체를 건드리지 않는 방법
월렛 패스가 필요한 대부분의 비즈니스는 pass.json을 직접 만지거나, 서명 인증서를 관리하거나, manifest 해시를 디버깅하고 싶어하지 않습니다. 원하는 건 고객이 추가할 수 있는 카드, 데이터가 바뀌면 함께 갱신되는 카드입니다. 파일 형식은 수단일 뿐, 목표가 아닙니다.
.pkpass 형식을 직접 다룰 필요는 없습니다. Pushwoosh가 서명과 패키징을 대신 처리하므로, 카드는 디자인만 하면 그대로 배포됩니다. Pushwoosh는 SOC 2 Type I 및 ISO 27001:2022 인증을 획득했고 GDPR을 준수하며, EU와 미국에 데이터센터를 운영해 패스에 담기는 고객 데이터를 안전하게 관리합니다. 카카오톡 채널이나 QR코드로 배포 링크를 공유하는 흐름도 그대로 지원합니다. 자세한 내용은 Wallet Passes에서 확인하세요.
FAQ
기본적으로는 안 됩니다. .pkpass는 애플의 형식이고, 안드로이드의 구글월렛은 이를 직접 읽지 못합니다. 일부 서드파티 앱이 가져오기를 지원하긴 하지만, 올바른 크로스플랫폼 방식은 같은 데이터를 바탕으로 구글월렛 패스를 애플용과 함께 발급하는 것입니다. 안드로이드 비중이 높은 국내 시장에서는 이 부분이 특히 중요합니다.
아닙니다. 앱은 폰에서 실행되는 소프트웨어이고, .pkpass는 코드가 없는 데이터 파일로 월렛 안에 자리할 뿐입니다. 앱스토어에서 설치할 것도, 실행되는 것도 없습니다. 정보를 표시하고 발급자가 데이터를 바꾸면 새로고침되는 것, 그게 하는 일의 전부입니다.