일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- kotlin
- PyQt5
- 그래프
- ios
- UIButton
- UITableView
- charts
- TableView
- 개발자
- Swift
- Chart
- androidstudio
- PyQt
- Python
- 라이브러리
- Chrats
- modal
- alamofire
- ui
- 어플리케이션
- UIKit
- cocoapods
- button
- graph
- Android
- 개발
- Apple
- library
- Xcode
- Storyboard
- Today
- Total
Jiwift
[iOS/Swift] Notification Service Extension이 작동하지 않을 때(Not working) 해결법 본문
[iOS/Swift] Notification Service Extension이 작동하지 않을 때(Not working) 해결법
지위프트 2024. 8. 16. 11:31
Notification Service Extension이 작동하지 않을 때 확인해야 하는 몇 가지 사항들을 정리하도록 하겠습니다. 우선 해당 Extension은 앱에서 받은 Push의 내용을 수정하기 위해서 사용합니다.
예시 사용법들은 Node 환경 Firebase로 테스트하고 작성되었습니다.
1. Extension 번들이 제대로 등록되었는지 확인
- Xcode에서 Extension을 추가하면 Bundle identifier가 설정되었을 겁니다. 하지만 그게 애플 개발자 센터 Identifiers에 등록되지 않았을 수 있습니다. 확인을 통하여 추가를 해주세요.
- 직접 추가하거나 아카이브 후 앱스토어 커넥트로 업로드하면 자동으로 가능합니다.
2. Push를 전송하는 서버와 앱과 연동이 제대로 되었는지 확인
- 서버에서 보내는 Push가 앱으로 들어오지 않는 상황일 수 있습니다. 등록된 Identifier, Key, APNS, Firebase 등을 확인해 주세요.
- Extension이 동작하지 않아도 Push가 들어오고 있다면 일단 연동을 제대로 되어있는 겁니다.
3. mutable-content 확인
- 서버에서 Push를 전송할 때 mutable-content 값을 추가하고 1로 변경해야 합니다.
aps: {
'mutable-content': 1,
}
4. Push에 Title, body와 같은 필드가 있는지 확인
- 해당 필드가 없으면 AppDelegate에서 작동해도 Extension가 동작하지 않습니다.
- Firebase면 Nofication 필드, APNs라면 Alert 필드를 확인하세요.
- 내용이 적어도 스페이스 하나 이상은 있어야 효과가 있습니다.
// 메시지 생성 예시 1
const message = {
notification: {
title: 'FCM Topic UnSubscribe', // 임의로 내용을 추가함
body: 'TestTestTest', // 임의로 내용을 추가함
},
data: {
payload: JSON.stringify(payloadJson)
},
apns: {
payload: {
aps: {
sound: 'default', // 시스템 기본 사운드 적용
'mutable-content': 1,
}
}
}
};
// 메시지 생성 예시 2
const message = {
data: {
payload: JSON.stringify(payloadJson)
},
apns: {
payload: {
aps: {
alert: " ", // 임의로 내용을 추가함
sound: 'default', // 시스템 기본 사운드 적용
'mutable-content': 1,
}
}
}
};
5. Minimum Deployments 버전이 테스트하는 단말기와 동일한지 확인
- Extension을 추가하면 기본적으로 최신 OS로 설정되는 것 같습니다. 테스트 단말기가 지원 버전보다 낮으면 작동하지 않습니다.
- Xcode에서 지원버전보다 낮은 단말기를 연결해도 빌드시 에러가 발생하지 않기 때문에 뒤늦게 발견될 수 있습니다.
'iOS Dev > iOS' 카테고리의 다른 글
Bundle Identifier와 CloudKit Containers는 변경되면 안된다. (0) | 2024.07.04 |
---|---|
애플 앱스토어 제출 상태: 심사 단계별 알아보기 (1) | 2024.07.04 |
[iOS/Swift] Privacy Manifest 최종 정리 (0) | 2024.05.08 |
[iOS/Swift] 앱에서 정적 라이브러리(.a)를 사용하는 분들이 있나요?? (0) | 2024.04.26 |
[iOS/Swift] safeAreaInsets 상단, 하단 영역 구하기 (0) | 2024.04.23 |