728x90
APNs?
Apple Push Notification Service
원격 알림 사용 시 반드시 거쳐야 하는 서비스
사용자가 처음 앱을 실행하면 APNs간 통신이 가능한 암호화된 IP연결을 하게되고 이를 통해 알림을 수신하게 된다.
순서 : Provider(server) -> APNs -> Device -> notification
- 기기에서 APNs에 연결
- APNs에서 기기 인증 후 토큰 발급
- 발급 받은 토큰을 기기에서 서버로 전달
- 서버에서 APNs에 토큰과 알림 데이터 보냄
- 토큰 확인 후 기기로 알림 전송
파이어베이스 이용 방법
프로젝트 생성
- 우측 상단의 '콘솔로 이동' 클릭
- '+ 프로젝트 추가'
- 프로젝트 이름 입력 후 계속
- '이 프로젝트에서 Google 애널리틱스 사용 설정' 활성화 후 계속
- Default Account for Firebase 구성 선택 후 프로젝트 만들기 클릭
파이어베이스 기본 바탕 만들기
- 파이어베이스 프로젝트 메인화면에서 iOS 선택
- iOS 번들 ID = xcode프로젝트 번들 ID 입력 후 앱 등록 클릭
- 구성 파일 다운로드에 뜨는 plist 파일을 다운로드하여 xcode 프로젝트에 추가
코코아팟 설정
- 프로젝트 경로 접근
- pod init
- pod file에 필요한 팟 프레임워크 추가
- pod install
파이어베이스 초기화
- xcode workspace 파일 열기
- AppDelegate파일에 import Firebase
- didFinishLaunch 함수에 FirebaseApp.congigure() 입력
APNS 구성
APNs 추가
- Target - Signing&Capabilities
- +capability
- Push Notification 추가
- Signing certificate 오류가 있다면 처리한다
APNs 등록
- appelDevelper 사이트 로그인
- Certificates,Identifiers&Profiles - Keys - +클릭
- Key Name 입력
- Apple Push Notification service(APNs) 체크
- Continue - register
APNs 설정
- 등록한 key 선택
- key ID 복사
- Download 버튼 클릭
! 다운로드는 한번 밖에 할 수 없으니 저장 위치 잘 알아 둘 것- 파이어베이스 프로젝트로 이동
- 프로젝트 개요의 톱니바퀴 - 프로젝트 설정
- 클라우드 메시징 - iOS 앱 구성 - APN 인증 키 파일 '업로드' 클릭
- 찾아보기를 눌러 다운받았던 파일 업로드
- 키 ID에 복사했던 key ID 입력
- 애플개발자 사이트 - Membership - TeamID 복사하여 팀 ID에 붙여넣기
- 업로드
remote notification 설정
User notification을 받을 수 있도록 앱딜리게이트 설정이 필요하다 -> AppDelegate파일에 UserNotifications를 import한다.
기기에서 특정앱에 알림을 받으려면 승인이 필요하다 -> didFinishLaunch함수에 코드를 추가한다.
FCM 설정
FCM SDK는 기본적으로 클라이언트앱 인스턴스 용 등록 토큰을 생성하여 타겟팅한 앱의 모든 특정 인스턴스로 알림을 전송할 수 있다. (FIRMessagingDelegate 메서드를 통해 등록 토큰을 제공한다.)
FCM SDK는 최초 앱을 시작할 때, 토큰이 업데이트 되거나 무효화 될 때마다 신규 또는 기존 토큰을 검색해서 가지게 된다.
따라서 FCM 등록 토큰을 기반으로 엑세스 할 수 있도록 코드를 추가한다.
알림 보내기
! 테스트 시에는 시뮬레이터로는 불가능 하니 실물 기기에서 진행할 것
테스트 메세지를 보내고 등록 토큰 확인
- 파이어베이스 사이트에 프로젝트로 이동
- 왼쪽 메뉴의 참여 - Cloud Messaging
- Send your first message 클릭
- 알림의 제목과 내용 입력
- 테스트 메시지 전송 클릭
- FCM 등록 토큰 = 기기를 실행했을 때 출력된 'FCM 등록토큰'을 복사하여 붙여넣는다
- +버튼 클릭
- 기기로 알림이 온다.
앱 모든 사용자에게 메세지 보내기
- 알림 작성 화면
- 제목과 내용 입력 - 다음
- 타겟에 앱 선택 - 다음
- 예약에서 알림 시점 설정 후 다음 - 검토 - 게시
알림 배지가 사라지도록 설정
// SceneDelegate 파일
func sceneDidBecomeActive(_ scene: UIScene) {
if UIApplication.shared.applicationIconBadgeNumber != 0 {
UIApplication.shared.applicationIconBadgeNumber = 0
}
}
728x90
'iOS > iOS' 카테고리의 다른 글
네트워크 통신 주의점 (0) | 2021.12.03 |
---|---|
UIPickerView - 항목 설정 (0) | 2021.10.29 |
네트워크 통신 - inof.plist 설정 (0) | 2021.10.26 |
스토리보드 없이 코드로 뷰 구현하기 (0) | 2021.10.26 |
firebase로 애플 로그인 (0) | 2021.10.12 |
댓글