iOS 앱의 경우, 사용자로부터 푸시 알림을 받을 수 있는 권한을 요청해야 합니다. UNUserNotificationCenter를 사용하여 요청할 수 있습니다.
디바이스 토큰 등록 및 메시지 수신
앱이 설치되고 실행될 때, FCM SDK는 앱 인스턴스에 대한 고유한 토큰을 생성합니다. 이 토큰을 서버에 등록하여 특정 디바이스에 메시지를 전송할 수 있습니다.
메시지 수신을 위해 애플리케이션에 리스너를 구현합니다.
FCM을 사용하면 애플리케이션의 사용자 참여도를 높이고, 중요한 정보를 신속하게 전달하며, 다양한 메시지 전송 시나리오를 지원하는 맞춤형 알림 시스템을 구축할 수 있습니다. FCM은 개발자가 클라우드 메시징을 쉽게 통합하고 관리할 수 있도록 다양한 도구와 API를 제공합니다
푸시를 설정하기 위한 코드 추가
Tools -> GamePotSDK -> Edit Settings 에 Use Notification 를 체크해 주세요.
Firebase Console 설정 워크플로에서 플랫폼별 Firebase 구성 파일을 가져옵니다.
Android의 경우, google-services.json 를 다운로드 합니다.
구성 파일을 Unity 프로젝트의 Assets 폴더에 이동합니다.
푸시를 사용하기 위한 코드 추가 작업이 필요 없습니다.
푸시를 사용하기 위한 코드 추가 작업이 필요 없습니다.
AppDelegate에 아래 코드를 추가합니다.
AppDelegate에 아래 코드를 추가합니다.
(선택) 이미지 푸시 설정 방법
iOS 앱에서 알림 이미지를 수신하고 처리하기 위해 알림 서비스 확장을 추가해 주십시오.
Xcode 프로젝트의 TARGETS 에서 Notification Service Extension 을 추가합니다.
생성된 Notification Service Extension 모듈의 NotificationService.swift 파일을 아래와 같이 수정합니다.
Xcode 프로젝트의 TARGETS 에서 Notification Service Extension 을 추가합니다.
생성된 Notification Service Extension 모듈의 NotificationService.m 파일을 아래와 같이 수정합니다.
푸시 상태 변경
푸시 수신 여부 설정을 변경하려면 아래 코드를 호출해 주십시오.
푸시 수신 여부 설정을 확인하려면 아래 코드를 호출해 주십시오.
푸시 테스트 방법(모바일)
푸시 테스트는 세 가지 방법으로 검증이 가능합니다.
게임팟 대시보드에서 확인 방법 대시보드 -> 회원 목록 -> 회원 정보(자세히) 푸시 발송 버튼을 클릭하면 해당 회원에게 개별로 푸시 발송이 가능합니다.
(AOS) Firebase 콘솔에서 테스트 방법
Firebase Console - 프로젝트 선택 - Messaging - 캠페인에서 새 캠페인 버튼을 클릭하여 메시지 발송 테스트를 할 수 있습니다.
앱에서 가져온 토큰을 복사하여 붙여넣기 후 +버튼을 눌러 토큰을 입력하여 테스트 버튼을 누르면 완료되며, 해당 토큰으로 발송이 되는지 확인 가능합니다.
(iOS) CloudKit Console 에서 테스트 방법
CloudKit Console -> Push Notifications 에 진입하여 새로운 Notifications을 생성합니다.
Device Token 입력과 Payload 입력 후 해당 토큰으로 발송이 되는지 확인 가능합니다.
문제해결
Q. java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.nbase.main. Make sure to call FirebaseApp.initializeApp(Context) first.
A. 해당 오류는 gradle 파일에 푸시를 위한 설정이 누락된 경우 입니다. 아래 사항을 확인해 주시기 바랍니다.
프로젝트 최상단 build.gradle.kts
를 추가해 준다.
app 내에 build.gradle.kts 내에
Q. org.gradle.api.GradleException: File google-services.json is missing. The Google Services Plugin cannot function without it.
A. 해당 오류는 google-services.json 을 찾을 수 없는 경우 발생합니다. 해당 파일을 모듈 : 앱 단위의 루트 폴더에 올바르게 위치 했을지 확인이 필요합니다.
(예시) ./project folder/app/google-services.json