본문 바로가기
IOS

APNs 푸시 알림이 오지 않는다 - DeviceToken, aps-environment, Provisioning Profile

by eigen96 2024. 12. 28.
728x90

1. 문제 상황

(1) 운영 APNs에서 푸시 알림이 도착하지 않음

  • 배경: iOS 앱에서 푸시 알림이 정상적으로 오지 않는 상황이 발생함.
  • 증상: 운영(Production) 환경으로 APNs 푸시를 보냈는데, 실제 기기에서는 알림이 전혀 수신되지 않음.

(2) 디바이스 토큰이 환경별로 다른 것으로 보임

  • 포인트: APNs에서 개발(Sandbox) 환경과 운영(Production) 환경은 각기 다른 디바이스 토큰을 발급하는가?
  • 상세: 개발 환경에서 발급된 토큰을 운영 환경 서버로 사용하면 푸시가 오지 않을 수 있음.

(3) Entitlements.plist 설정 문제

  • 발견: aps-environment 값이 development로 설정되어 있음.
  • 의문: 운영 환경 배포 시에는 production으로 바꿔야 하는지, 그리고 프로비저닝 프로파일은 어떻게 변경해야 하는건가?

2. 새롭게 알게 된 내용

A. APNs 환경 분리와 디바이스 토큰

  • APNs에는 SandboxProduction 두 가지 환경이 존재한다. 이 둘은 각기 다른 디바이스 토큰이 발급된다.
  • 즉, 개발 환경에서 발급된 토큰으로 운영 서버에 푸시 알림을 보내면 정상 수신되지 않음.
  • 앱 실행 시점마다 토큰이 갱신될 가능성이 있으므로, 항상 최신 토큰을 서버에 등록해야 함.

B. Entitlements.plist의 aps-environment 설정

  • Entitlements.plist의 <key>aps-environment</key> 값이 어떤 APNs 환경을 사용하는지를 결정.
    • development → 개발 환경
    • production → 운영 환경
  • Xcode에서 프로비저닝 프로파일을 통해 자동으로 설정되는 경우가 많음. 빌드 환경(Debug/Release)에 따라 달리 설정하기도 함.

C. 프로비저닝 프로파일(Provisioning Profile)

  • 프로비저닝 프로파일은 앱 빌드·배포를 위한 인증 정보 묶음.
    • 개발용: 디버그 및 테스트를 위한 Development 프로파일
    • 배포용: 실제 사용자 배포를 위한 Distribution 프로파일
  • Apple Developer 사이트에서 만들거나 수정한 뒤, Xcode에 다운로드·등록하여 사용할 수 있음.
  • Xcode의 Automatically manage signing 기능을 사용하면 자동으로 등록되고 관리되어, 따로 다운로드할 필요가 줄어듦.

D. 프로비저닝 프로파일은 내 계정이어도 직접 내려받아야 하나?

  • 자동 서명 기능(Automatically manage signing)이 켜져 있으면, Xcode가 알아서 생성·관리해줌.

 

출처)

https://forums.developer.apple.com/forums/thread/683572?utm_source=chatgpt.com
https://brunoscheufler.com/blog/2020-12-07-apns-environments-and-push-notifications?utm_source=chatgpt.com

728x90

'IOS' 카테고리의 다른 글

CocoaPods PBXFileSystemSynchronizedRootGroup 오류 (Xcode 16 )  (0) 2025.01.23
[iOS] RealityKit, ARKit - MotionCapture 예제  (2) 2024.02.14
[iOS] SIMD3  (0) 2024.02.06
RealityKit - ARView, Entity  (0) 2024.02.03
[iOS] ARKit(1) - OverView, Setting  (2) 2024.01.21

댓글