홈 / 가이드 / 푸시 알림이 안 올 때

앱 푸시 알림이 안 올 때

어제까지 잘 오던 알림이 안 옵니다. 안드로이드·iOS를 나눠 권한부터 인증서 만료까지, 진단 순서대로 짚어봅니다.

앱몬스터 · 작성 2026-10-05

핵심 답변

푸시가 안 오는 원인은 대개 알림 권한 꺼짐 · 토큰 문제 · iOS 인증서/키 만료 · 서버 전송 오류 · 페이로드 형식 중 하나입니다. 먼저 기기 알림 권한과 토큰 발급부터 확인하고, iOS만 안 온다면 APNs 인증서·키 만료를 가장 먼저 의심하세요.

먼저, 진단 순서부터

복잡한 로그를 보기 전에 전체가 안 오는지, 일부만 안 오는지부터 가릅니다. 이 갈림길 하나로 원인 범위가 절반으로 줄어듭니다.

푸시 장애 진단 흐름
1
기기 알림 권한
앱 알림이 켜져 있나
→
2
토큰 발급
토큰을 받아 서버에 저장하나
→
3
범위 구분
전체? 일부?
→
4
분기 점검
전체=서버·인증서 / 일부=기기·토큰
전체가 안 오면 서버 전송·인증서 쪽, 일부만 안 오면 기기·권한·토큰 쪽일 가능성이 큽니다.

안드로이드(FCM) vs iOS(APNs) — 원인이 다릅니다

두 OS는 푸시 전송 경로가 달라 원인도 갈립니다. 어느 쪽이 안 오는지에 따라 먼저 볼 곳이 정해집니다.

OS별 주요 원인

안드로이드 (FCM)

  • 알림 권한(안드로이드 13+) 미요청
  • 제조사 절전·배터리 최적화가 백그라운드 차단
  • 토큰 갱신을 서버에 반영 안 함
  • google-services.json / 서버 키 불일치

iOS (APNs)

  • APNs 인증서(.p12) 만료 — 가장 흔함
  • 개발(sandbox)/운영(production) 환경 반대
  • Push 권한(entitlement) 누락
  • 프로비저닝에 Push 미포함
iOS만 안 온다면 APNs 인증 만료부터, 안드로이드 일부만 안 온다면 절전·토큰부터 보세요.

iOS에서 가장 흔한 범인 — 인증서·키 만료

iOS만 안 온다면 APNs 인증 만료를 먼저 의심하세요. 특히 인증서(.p12)는 1년마다 만료되고, 만료되는 순간 그날부터 iOS 전체가 안 옵니다.

.p12(인증서) vs .p8(인증 키): .p12는 1년마다 만료돼 매년 갱신해야 하지만, .p8 인증 키 방식으로 바꾸면 만료가 없어 갱신 부담이 사라집니다. 아직 .p12를 쓰고 있다면 .p8 전환을 권합니다.

인증서·프로비저닝 만료가 겹쳐 앱 자체가 안 열리는 상황이라면 iOS 인증서 만료 가이드를 함께 보세요.

토큰 문제 — 보낼 대상이 비어 있지 않은지

서버는 멀쩡해도 저장된 토큰이 틀리면 아무도 못 받습니다. 토큰은 고정값이 아니라 바뀝니다.

  • 앱 재설치·기기 변경 시 토큰이 바뀌는데 서버가 옛 토큰을 들고 있는 경우.
  • 로그아웃 시 토큰을 지워놓고 다시 저장하지 않는 경우.
  • FCM 응답의 NotRegistered·InvalidRegistration 토큰을 정리하지 않아 실패가 쌓이는 경우.

실무에서 자주 만나는 원인 순서

현장에서 푸시 장애를 들여다보면, 원인은 대체로 아래 순서로 자주 나타납니다. 특정 원인부터 보면 시간을 아낄 수 있습니다.

자주 마주치는 원인 (실무 경험 기반 상대 빈도)
기기 알림 권한·절전
자주
토큰 저장·갱신
자주
iOS 인증서·환경
보통
서버 전송·키
가끔
페이로드 형식
가끔
순위를 보여주기 위한 상대 표현이며 측정된 절대 수치가 아닙니다. 상황마다 다릅니다.

서버·페이로드 점검

  • 전송 응답을 안 봄: 서버가 FCM/APNs 응답 코드를 로깅하지 않으면 왜 실패했는지 알 수 없습니다. 먼저 응답부터 남기세요.
  • 페이로드 형식: notification만 보내면 백그라운드에서만 뜨고, data만 보내면 앱이 직접 알림을 만들어야 합니다. 의도한 동작과 맞는지 확인.
  • 인증 만료: 서버의 FCM 서비스 계정 키·APNs 키가 폐기·만료됐는지.
한 줄 요약: 권한 → 토큰 → (전체/일부) → iOS면 인증서, 안드로이드면 절전·토큰, 전체면 서버 응답 로그 순으로 보면 대부분 빠르게 잡힙니다.

자주 묻는 질문

일부 기기만 알림이 안 와요.

보통 기기 쪽 문제입니다. 해당 앱 알림 권한이 꺼져 있거나, 제조사 절전·배터리 최적화가 백그라운드 푸시를 막거나, 그 기기의 토큰이 서버에 옛 값으로 남아 있는 경우가 많습니다.

iOS만 알림이 안 와요.

APNs 인증서(.p12) 만료를 가장 먼저 확인하세요. 1년마다 만료되고 만료되는 순간 iOS 전체가 안 옵니다. 개발/운영 환경을 반대로 보내고 있지는 않은지도 확인합니다. 갱신 부담을 없애려면 인증 키(.p8) 방식으로 전환하는 것을 권합니다.

앱 업데이트 후 갑자기 안 와요.

토큰 갱신 처리나 푸시 권한(entitlement)·프로비저닝이 업데이트 과정에서 빠졌을 가능성이 큽니다. 서버가 새 토큰을 받고 있는지, 빌드에 Push 권한이 포함됐는지 확인하세요.

보낸 건 성공이라는데 안 와요.

전송 성공은 '푸시 서버가 접수했다'는 뜻이지 '기기에 떴다'가 아닙니다. 기기 절전·권한, 또는 data-only 페이로드를 앱이 알림으로 안 그린 경우가 흔합니다. 응답 코드와 페이로드 형식을 함께 확인하세요.

무료 점검부터 시작하세요

어느 기기·어느 OS에서 안 오는지와 서버 전송 로그만 주시면, 권한·토큰·인증서·서버 중 어디서 막혔는지 먼저 진단해 드립니다.

무료 점검 문의 → appmonster.co.kr

문의: appmonster.kr@gmail.com

함께 보기: iOS 인증서 만료 · 방치된 앱 점검 체크리스트 · Firebase 보안 규칙