2025년 11월 07일
7

[iOS] 푸시 알림(APNs) 완벽 도입 가이드: 인증서 지옥 탈출, .p8 키 설정 총정리

서비스 운영
KKingmo

Changmo Oh

@KKingmo

전체 글 보기

iOS 푸시 알림을 구현하려면 애플의 허가증이 필요하다. 과거의 구식 인증서(.p12) 방식은 잊어라. 우리는 토큰 기반 인증(.p8 Key)을 사용하여 설정 한 번으로 영구적인 시스템을 구축할 것이다.

전체 구조도

우리가 구축할 흐름은 다음과 같다.

  1. Apple Developer Portal: 앱 권한을 설정하고 인증 키(.p8)를 발급받는 곳이다.
  2. APNs Auth Key (.p8): 애플 푸시 서버(APNs)를 열 수 있는 '만능 마스터키'다. 백엔드(혹은 FCM)가 이 키를 가지고 있어야 한다.
  3. Xcode: 앱 프로젝트에서 푸시 기능을 켜주는 스위치 역할을 한다.

Step 1. App ID에서 Push Notification 활성화

가장 먼저 앱의 "신분증(App ID)"에 푸시 알림 권한을 부여해야 한다.

  1. Apple Developer Portal > [Certificates, Identifiers & Profiles]로 이동한다.
  2. 좌측 메뉴 [Identifiers] 클릭 > 해당 앱의 App ID를 선택한다.
  3. Capabilities 탭 목록에서 Push Notifications 항목을 찾아 체크박스를 켠다.
  4. [Save]를 눌러 저장한다. (이미 켜져 있다면 패스)

Step 2. APNs 인증 키 (.p8) 생성 (핵심)

이 과정이 제일 중요하다. 백엔드(혹은 FCM)가 애플 서버에 접속할 때 사용할 "영구적인 비밀키"를 만드는 과정이다.

  1. 좌측 메뉴 [Keys]로 이동한다.
  2. [+] 버튼을 눌러 새 키를 생성한다.
  3. Key Name: 식별하기 쉬운 이름 입력 (예: APNs Key for FCM).
  4. Apple Push Notifications service (APNs) 체크박스를 선택한다.
  5. [Continue] > [Register] 클릭.
  6. [Download] 버튼을 눌러 .p8 확장자 파일을 다운로드한다.
    • ★경고: 이 파일은 단 한 번만 다운로드 가능하다. 페이지를 벗어나면 다시 받을 수 없으니 즉시 안전한 곳에 백업하고 백엔드 개발자에게 전달해야 한다.
  7. 같은 화면에 표시된 Key ID (10자리 문자열)도 복사해 둔다.

Step 3. 필수 정보 수집 (Team ID, Bundle ID)

백엔드나 FCM 설정 시 필요한 정보들을 미리 모아둔다. 메모장에 적어두자.

  1. APNs Key 파일 (.p8): 방금 다운로드한 파일.
  2. Key ID: 방금 복사한 10자리 문자열.
  3. Team ID: Apple Developer 페이지 우측 상단(본인 이름 옆) 혹은 [Membership] 메뉴에서 확인 가능한 10자리 문자열 (예: A1B2C3D4E5).
  4. Bundle ID: 앱의 고유 ID (예: com.myapp.ios).

Step 4. FCM 콘솔에 APNs 키 업로드

대부분의 현대적인 앱은 안드로이드/iOS 푸시를 한 번에 보내기 위해 FCM을 중계소로 쓴다. (백엔드 → FCM → APNs → 아이폰). 따라서 획득한 키를 FCM에 등록해야 한다.

  1. Firebase Console 접속 > 해당 프로젝트 선택.
  2. [프로젝트 설정(톱니바퀴)] > [클라우드 메시징(Cloud Messaging)] 탭 이동.
  3. Apple 앱 구성(Apple app configuration) 섹션을 찾는다. (iOS 앱이 등록 안 되어 있다면 [앱 추가]부터 진행)
  4. APNs 인증 키(APNs Authentication Key) 항목의 [업로드] 버튼 클릭.
  5. 정보 입력:
    • APNs 인증 키: Step 2에서 받은 .p8 파일 업로드.
    • 키 ID: Step 2에서 확보한 Key ID 입력.
    • 팀 ID: Step 3에서 확보한 Team ID 입력.
  6. [업로드] 클릭.
    • Note: 이렇게 하면 개발(Sandbox) 환경과 배포(Production) 환경 모두 이 키 하나로 작동한다.

Step 5. Xcode 설정 (프론트엔드 필수 체크)

아무리 서버 설정을 잘해도, 앱 자체에서 푸시 기능을 끄고 빌드하면 소용없다. iOS 개발자에게 꼭 확인시키자.

  1. Xcode 실행 > 프로젝트 선택 > TARGETS에서 해당 앱 선택.
  2. [Signing & Capabilities] 탭 이동.
  3. 좌측 상단 [+ Capability] 클릭.
  4. Push Notifications 검색 후 더블 클릭하여 추가.
  5. Background Modes도 추가한 뒤, Remote notifications 체크박스를 켠다.
    • Note: 이걸 체크해야 앱이 꺼져 있거나 백그라운드일 때도 알림을 수신할 수 있다.

셋팅 체크리스트

  • Dev Portal: App ID의 'Push Notifications' 기능이 켜져 있는가?
  • Asset: .p8 키 파일을 다운로드하여 안전하게 보관했는가?
  • Asset: Key ID, Team ID, Bundle ID를 확보했는가?
  • Firebase: FCM 콘솔의 'Apple 앱 구성'에 위 4가지 정보(.p8, Key ID, Team ID, Bundle ID)를 업로드했는가?
  • Xcode: 프로젝트 설정(Capabilities)에 'Push Notifications'와 'Remote notifications'가 추가되었는가?

마치며

요약하자면:

  1. 애플 개발자 사이트에서 .p8 키(마스터키)를 만든다.
  2. 이 키를 FCM 콘솔에 업로드하여 FCM이 애플 서버에 문을 따고 들어갈 수 있게 해 준다.
  3. Xcode에서 푸시 수신 스위치를 켠다.