728x90
1. 문제 상황
(1) 운영 APNs에서 푸시 알림이 도착하지 않음
- 배경: iOS 앱에서 푸시 알림이 정상적으로 오지 않는 상황이 발생함.
- 증상: 운영(Production) 환경으로 APNs 푸시를 보냈는데, 실제 기기에서는 알림이 전혀 수신되지 않음.
(2) 디바이스 토큰이 환경별로 다른 것으로 보임
- 포인트: APNs에서 개발(Sandbox) 환경과 운영(Production) 환경은 각기 다른 디바이스 토큰을 발급하는가?
- 상세: 개발 환경에서 발급된 토큰을 운영 환경 서버로 사용하면 푸시가 오지 않을 수 있음.
(3) Entitlements.plist 설정 문제
- 발견: aps-environment 값이 development로 설정되어 있음.
- 의문: 운영 환경 배포 시에는 production으로 바꿔야 하는지, 그리고 프로비저닝 프로파일은 어떻게 변경해야 하는건가?
2. 새롭게 알게 된 내용
A. APNs 환경 분리와 디바이스 토큰
- APNs에는 Sandbox와 Production 두 가지 환경이 존재한다. 이 둘은 각기 다른 디바이스 토큰이 발급된다.
- 즉, 개발 환경에서 발급된 토큰으로 운영 서버에 푸시 알림을 보내면 정상 수신되지 않음.
- 앱 실행 시점마다 토큰이 갱신될 가능성이 있으므로, 항상 최신 토큰을 서버에 등록해야 함.
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 |
댓글