로컬 VS. 푸시 알림
- 권한 체크 중요함! 권한 체크 문구는 바꿀 수 없음
- 로컬 알림
- 앱 내에서 알림. 알림센터에서 알림이 옴
- 비슷한 시간에 항상 같은 문자열의 내용이 나타남
- 푸시 알림
- 서버에서 알림.
- 광고, 채팅 알림. 언제 어떤 내용으로 알림이 올지 모름
푸시 알림
- 항상 권한 체크 중요!!!
- APNS - Apple Push Notification System
- 앱 실행 → 애플 서버에 요청(내가 사용할 푸시에 대한 식별자 제공해줘! 이 기기 등록해줘) → 서버: 푸시받을 수 있게 식별자를 줄게(식별자, 토큰, 기기 주민번호) → 카톡 서버에 요청 전달(발급받은 주민번호를 기억함) → 푸시를 잘 받게 될 수 있는 상황이 완료됨! → 애플 서버에서 푸시를 보냄
- 푸시는 카톡이 애플 서버에 부탁해서 보내게 됨.
- 애플이 푸시를 관리함!
- 서버가 없으므로 사용할 수 있는 것이 파이어베이스!
- 푸시 구현 시 체크리스트:
- 애플 개발자 계정이 있어야 함
- 실제 기기가 있어야 함 - 시뮬레이터 테스트 불가(Xcode 11.4부터 수신 지원하긴 함! 그러나 번거로움)
- Apple 푸시 알림 인증키 필요 푸시 인증 키 등록
- 인증키 하나로 여러 앱 푸시 사용 가능
- (→ 인증서 관리 폴더 만들면 좋음)
- p12: 인증서 → 인증서 두 개로 나뉨 (개발용, 배포용), 1년마다 갱신이었음
- p8로 바뀜: 인증키 → 하나만 받으면 둘 다 가능, 기능 영구
- 파이어베이스 - 클라우드 메시징, 프로젝트 설정
https://firebase.google.com/docs/cloud-messaging/ios/client?hl=ko&authuser=0
- FCM 토큰 추가하고 테스트 성공!
- 푸시마다 설정, 화면마다 설정도 가능
- 푸시 클릭하면 특정 화면전환까지 이루어지는 경우 등 설정할 수 있는 것 다양함
UNNotificationInterruptionLevel
- iOS 15부터 알림 수준 다르게 설정할 수 있음. → 긴급, 방해금지 모드에서도 푸시 온다든지.. 등
토큰 재설정 문제
- 회원 탈퇴해도 토큰 삭제 안하면.. 채팅 섞여들어갈 수도
- 카카오톡에서 차단을 했는데 푸시 알림을 삭제하지 않은 경우.. 푸시를 누른다면 어디로 가야할까?
- 푸시 모두 없애버려서 → 경우의 수를 줄일 수 있다
// SceneDelegate.swift
func sceneDidBecomeActive(_ scene: UIScene) {
// Called when the scene has moved from an inactive state to an active state.
// Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
UIApplication.shared.applicationIconBadgeNumber = 0
UNUserNotificationCenter.current().removeAllDeliveredNotifications() // stack으로 쌓여있는 알림 다 없애버림
}
실제 앱 용량확인법:
앱스토어 커넥트 들어가서 확인하기
디버깅 모드에서 텍스트하는 용량이랑 실제 출시되는 용량은 다름!
새싹 교육 과정에서 배운 내용을 정리합니다.
'공부하자! > iOS' 카테고리의 다른 글
RxSwift 기본 개념 (0) | 2022.10.25 |
---|---|
[메모마무] 업데이트 이것저것 (1) | 2022.10.21 |
새싹 출시 프로젝트 회고 - 메모마무 (1) | 2022.10.04 |
메모마무 - 개인 정보 처리 방침 (3) | 2022.09.30 |
메모마무 개발 - 중간 발표 이후 (0) | 2022.09.26 |