콘텐츠로 이동

개요

푸시 발송 API

푸시 알림 시스템은 API 요청을 수신하여 각 OS 및 플랫폼에서 제공하는 메시징 중계 서비스(APNs, FCM, ADM)로 데이터를 전달하고 푸시 알림을 발송합니다. 전체적인 처리 흐름은 아래와 같습니다.

푸시 알림 시스템 흐름도

플랫폼별 메시징 중계 서비스 안내

푸시 알림 시스템은 요청 조건에 맞는 토큰 데이터를 찾아 페이로드를 구성하고, 각 메시징 중계 서비스에 전달하는 역할을 담당합니다. 이후 푸시 메시지를 단말에 전송하는 과정은 메시징 중계 서비스에서 수행합니다. 다시 말해, 푸시 알림 시스템이 서비스 호출 과정의 성공 여부를 추적할 뿐 실제 단말에서 미수신했을 때 원인을 파악하는 기능은 지원하지 않습니다.

Tip

APNs에서는 앱 빌드 및 배포 환경(Production 및 Sandbox)별로 전용 엔드포인트를 제공합니다.

  • Production: api.push.apple.com
  • Sandbox: api.sandbox.push.apple.com

APNs의 프로덕션 및 Sandbox 환경에서 발급된 디바이스 토큰은 토큰을 발급받은 환경에 해당하는 엔드포인트에서만 유효하며, 그 외 환경에서는 사용할 수 없습니다. 자세한 내용은 Apple 공식 문서를 참고하세요.

엔드포인트 결정 정책

Hive SDK v4 26.1.0 이상에서는 APNs 토큰 등록 시 앱의 빌드 환경 정보(buildType)을 함께 전달하며, 푸시 알림 시스템은 이 값을 기준으로 엔드포인트를 결정합니다.

buildType 사용 엔드포인트
development Sandbox
development이 아닌 모든 값(production, unknown 등) Production
전달되지 않음(Hive SDK v4 26.1.0 미만) 앱센터에 등록한 App ID의 서비스 타입 기준
서비스 타입이 'TEST'이면 Sandbox, 그 외에는 Production

앱센터 서비스 타입 참조 관련 유의사항

Sandbox 토큰은 Xcode 개발 빌드 환경에서만 발급되며, 해당 환경에서는 buildType이 항상 development로 정확히 전달됩니다. 따라서 development를 제외한 모든 값은 예외 없이 Production 토큰으로 처리됩니다.

buildType이 수신된 토큰은 앱센터의 서비스 타입 설정을 참조하지 않으므로, 앱센터 서비스 타입이 'TEST'로 지정된 앱이더라도 development가 아닌 토큰은 모두 Production 엔드포인트로 발송됩니다.

빌드 방식별 buildType 판별 정책

Hive SDK는 앱 패키지 내 embedded.mobileprovision 파일의 aps-environment 값을 읽어 빌드 환경을 판별합니다. 단, TestFlight 및 App Store 배포용 앱은 Apple의 서명 재구성 프로세스에 의해 해당 프로파일 파일이 제거되므로 Hive SDK가 파일에 접근할 수 없어 unknown을 전달합니다.

빌드 방식 실제 aps-environment buildType 사용 엔드포인트
Xcode 개발 빌드 development development Sandbox
Ad Hoc production production Production
TestFlight production unknown Production
App Store production unknown Production

unknown은 빌드 환경을 확인할 수 없었다는 의미이며, 해당 상황이 발생하는 TestFlight 및 App Store 빌드는 모두 Production 환경으로 서명됩니다. 따라서 unknown 토큰을 Production 엔드포인트로 발송하는 것이 정상 동작입니다.

환경별 접근 URL

서버 URL
Production https://notification.withhive.com
https://notification.qpyou.cn
Sandbox https://sandbox-notification.withhive.com
https://sandbox-notification.qpyou.cn