Rails 애플리케이션에 Apple Wallet Pass 통합하기

Apple Wallet Passes in Rails apps - Avo

작성자
Ruby Weekly
발행일
2025년 08월 19일

핵심 요약

  • 1 Rails 애플리케이션에 Apple Wallet Pass를 통합하여 사용자 참여 및 유지율을 높이는 방법을 Passkit Gem을 활용하여 설명합니다.
  • 2 Apple Wallet Pass의 다양한 유형(탑승권, 쿠폰, 이벤트 티켓 등)과 각 패스의 구조 및 동적 기능을 상세히 소개합니다.
  • 3 Apple 개발자 계정 설정부터 Pass Type ID 생성, 인증서 관리, 그리고 Passkit Gem을 이용한 실제 패스 생성 및 동적 이미지 처리 과정을 다룹니다.

도입

사용자 참여와 유지율을 높이는 전략의 일환으로, Rails 애플리케이션에 Apple Wallet Pass를 통합하는 방법에 대해 다룹니다. 이 글은 Passkit Gem을 활용하여 사용자가 탭 한 번으로 자신의 휴대폰에 추가할 수 있는 서명된 패스를 생성하는 과정을 상세히 설명합니다. Apple Wallet Pass의 개념과 유용성을 이해하고, 이를 통해 앱 콘텐츠를 사용자 잠금 화면과 일상 워크플로우에 직접 통합하는 방법을 탐구합니다.

Apple Wallet Pass의 이해 및 구조

Apple Wallet Pass는 티켓, 쿠폰, 멤버십 카드 등 실제 항목의 디지털 표현이며, 단순한 정적 이미지를 넘어 동적이고 상호작용적인 기능을 제공합니다. * 주요 기능: 실시간 업데이트, 만료일 설정, 포인트/잔액 관리, QR 코드/바코드, 지리적 위치 및 시간 기반 트리거. * Pass 구조: .pkpass 파일은 manifest.json(파일 무결성 검증), pass.json(패스 데이터), 이미지(icon.png, strip.png 등), 그리고 Apple 개발자 인증서로 생성된 암호화 서명으로 구성됩니다.

Pass 유형 및 개발자 설정

Apple Wallet Pass는 5가지 주요 유형으로 나뉩니다. * 유형: Boarding Pass (탑승권), Coupon (쿠폰), Event Ticket (이벤트 티켓), Store Card (상점 카드), Generic (일반). 각 유형은 특정 사용 사례와 레이아웃 규칙을 가집니다. * Apple 개발자 설정: Apple Developer 계정이 필수적이며, 다음 요소들을 준비해야 합니다. * Apple Intermediate Certificate (WWDR Certificate) * Apple Team ID * Pass Type ID (고유 식별자) * Certificate Signing Request (CSR) 및 p12 개인 인증서 * PKCS12 파싱 오류 해결: OpenSSL 3.0 이상 버전에서 발생하는 PKCS12_parse: unsupported 오류는 openssl pkcs12 -legacy 명령을 통해 인증서를 재암호화하여 해결할 수 있습니다.

Rails 애플리케이션 통합 (Passkit Gem)

Rails 애플리케이션에 Apple Wallet Pass를 통합하기 위해 Passkit Gem을 사용합니다. * 환경 설정: rails new로 새 프로젝트를 생성하고, passkit, money-rails, figaro Gem을 설치합니다. config/application.ymlPASSKIT_WEB_SERVICE_HOST, PASSKIT_APPLE_INTERMEDIATE_CERTIFICATE 등 필요한 환경 변수를 설정하고, 인증서 파일을 certs 디렉토리에 저장합니다. * Passkit Gem의 기능: * 커스텀 패스 생성: Passkit::BasePass를 상속받아 app/lib/passkit 폴더에 커스텀 패스 클래스를 정의합니다. pass_type 메서드를 오버라이드하고, description, background_color, header_fields, barcodes 등 필요한 필드 메서드를 구현합니다. * 동적 이미지 처리: add_other_files 훅을 사용하여 Active Storage에 업로드된 이미지(예: 이벤트 커버)를 패스에 동적으로 포함할 수 있습니다. * URL 생성, 미리보기, 대시보드: Passkit::UrlGenerator를 통해 패스 다운로드 URL을 생성하고, 개발 중 패스 미리보기 기능 및 생성된 패스 모니터링 대시보드를 제공합니다.

결론

본 튜토리얼을 통해 Rails 애플리케이션에서 Passkit Gem을 활용하여 Apple Wallet Pass를 통합하는 전반적인 과정을 살펴보았습니다. Apple Wallet Pass의 개념, 다양한 유형, 그리고 동적인 기능을 이해하고, Apple 개발자 계정 설정부터 인증서 관리, 그리고 실제 패스 생성 및 동적 이미지 처리까지의 상세한 구현 방법을 익혔습니다. 이 지식을 바탕으로 개발자는 자신의 애플리케이션에 맞춤형 Apple Wallet Pass를 성공적으로 구현하여 사용자 경험을 향상시키고, 더 나아가 사용자 스스로 커스텀 패스를 생성하고 통합할 수 있는 기능을 제공할 수 있을 것입니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!