푸시
이 문서는 React Native에 대한 푸시 알림을 설정하는 방법을 다룹니다. 푸시 알림을 통합하려면 각 기본 플랫폼을 별도로 설정해야합니다. 나열된 각 안내서를 따라 설치를 완료하십시오.
1. 플랫폼 별 초기 설정
프로젝트에 Firebase 추가하기
Firebase에서 제공되는 Unity 프로젝트에 Firebase 추가의 지시사항에 따라 프로젝트에 Firebase Unity SDK를 추가합니다.
Dfinery Console에서 Firebase 정보 등록하기
Console에서 부가설정/채널 부가 설정/푸시/Android 설정관리에 들어가 발신자 ID를 입력하고 JSON 형식의 Firebase 사용자 인증 정보 비공개 키 파일을 업로드합니다.
발신자 ID 확인 방법
Firebase Console로 이동합니다.
프로젝트를 선택합니다.
좌측 패널에서 프로젝트 개요 오른쪽에 ⚙️ 아이콘을 클릭합니다.
프로젝트 설정을 클릭합니다.
프로젝트 설정 상단 탭에서 클라우드 메시징을 클릭합니다.
발신자 ID를 확인합니다.
Firebase 사용자 인증 정보 비공개 키 파일 발급 방법
Firebase에서 제공하는 수동으로 사용자 인증 정보 제공을 참고하여 JSON 형식으로 키를 저장한다음 Console에 파일을 업로드 해주세요.
해당 페이지에서 확인할 수 있는 주요 내용은 다음과 같습니다.
Firebase Console에서 설정 > 서비스 계정을 엽니다.
새 비공개 키 생성을 클릭한 다음 키 생성을 클릭하여 확인합니다.
키가 들어 있는 JSON 파일을 안전하게 저장합니다.
만약 비공개 키 파일 발급에 어려움을 겪으실 경우 Firebase 사용자 인증 정보 비공개 키 파일 발급 따라해보기를 참고하여 주시기 바랍니다.
앱 매니페스트에 FirebaseMessagingService를 상속받는 서비스 추가
앱 매니페스트에 POST_NOTIFICATIONS 권한 추가하기
Android 13이상의 기기일 경우 POST_NOTIFICATIONS 권한이 필요합니다. AndroidManifest.xml에 해당 권한을 추가해주시기 바랍니다.
다음은 작성이 완료된 AndroidManifest.xml 예시입니다.
푸시 알림 채널을 Dfinery에 연동하기
푸시 알림 채널 생성
Android 8.0부터는 알림을 수신받기 위해 알림 채널 생성이 필요합니다. Dfinery.CreateNotificationChannel() 메소드를 사용하여 알림 채널을 생성할 수 있습니다.
생성한 푸시 알림 채널 ID 등록
생성한 알림 채널의 ID를 등록합니다.
푸시 알림 채널 그룹 생성 (선택사항)
Andorid 알림 채널에는 선택적으로 알림 채널 그룹을 설정할 수 있습니다.
프로젝트에 푸시 알림 아이콘 추가하기
알림 아이콘을 프로젝트에 추가하기 위해서는 Assets/Plugins/Android 경로에 .androidlib 확장자를 가진 폴더를 생성해야 합니다.
해당 폴더 내에 다음과 같은 형태로 푸시 알림 아이콘의 파일을 넣어주세요.
아이콘 설정은 drawable 만을 지원합니다. mipmap은 지원하지 않습니다.

폴더 내에 AndroidManifest.xml을 생성하여 다음과 같이 작성합니다.
package 이름은 다른 플러그인과 겹치지 않는 고유한 이름으로 지정해주세요.
최종적으로 아래와 같은 폴더 구조가 되면 성공입니다.
이렇게 할 경우 Unity가 .androidlib 폴더를 하나의 Android 라이브러리로 인식하여 빌드시 Drawable 형태로 포함시킵니다.
푸시 알림 아이콘 설정하기
Android에서 푸시 알림을 표시하기 위해서는 아이콘 설정이 필요합니다. 아이콘 Drawable의 이름을 입력하여 설정합니다.
아이콘 설정은 drawable 만을 지원합니다. mipmap은 지원하지 않습니다.
Android Notification Icon Name에 알림 아이콘으로 사용될 Drawable의 이름을 입력해주세요. 
푸시 알림 강조색 지정하기
알림 아이콘 강조색은 init시 config에 색상의 hexString 값을 입력하여 적용할 수 있습니다. 색상을 지정하지 않으면 시스템 기본 색상으로 표시됩니다.
Android Notification Accent Color에 알림 강조 색상을 입력해주세요. 
Dfinery Console에 APNs 인증키 등록
푸시메시지를 사용하기 위해 Apple로부터 발급받은 .p8 APNs 인증키를 DFINERY 콘솔에 등록해주세요. 콘솔의 부가 설정 / 채널 부가 설정 / 푸시 / iOS 설정 관리에서 등록할 수 있습니다.
Capabilities 설정
Unity 프로젝트 빌드 후 Xcode에서 아래 스크린샷과 같이 PushNotification, Background Modes/Remote Notifications에 대한 Capabilities를 추가해 주세요.

Notification Service Extension 추가
아래 스크린샷과 같이 Notification Service Extension을 추가해주세요



iOS 네이티브 코드 수정
생성한 Notification Service Extension 프로젝트 내에 DfinerySDKServiceExtension.xcframework을 import 후 코드를 수정합니다.
Swift
2. 런타임 알림 권한 요청하기
Mobile Notifications 패키지를 활용한 푸시 알림 권한 요청 예시입니다.
3. 토큰을 Dfinery에 연동하기
Firebase/APNS에서 발급된 토큰을 Dfinery에 연동하기 위해서 다음과 같이 작성해주시기 바랍니다.
아래는 가장 최근에 발급받은 푸시 토큰을 가져오고 Dfinery에 연동하는 예제입니다.
4. 푸시 클릭시 호출되는 딥링크 연동하기
앱 콘텐츠 딥 링크 만들기에 따라 딥링크 설정을 해주세요.
5. 푸시 알림 수신 허용 유무 반영하기
광고성 목적이 있는 푸시의 경우 정보통신망법 에 따라 사용자에게 사전 수신동의를 받아야 합니다. 사용자에게 푸시 알림이 허용되었다는 정보를 Dfinery에 반영하기 위해서 다음의 일련의 작업을 수행하여 주시기 바랍니다.
사용자에게 푸시 알림 허용에 대한 고지하기
사용자의 허용/거부 의사에 대한 값을 반영하기 위해 다음의 코드를 작성
알림 수신 동의 설정하기를 참고하여 사용자가 동의한 항목에 대해 값을 입력해주시기 바랍니다. 아래 코드는 광고성 수신 동의를 허용한 예시입니다.
6. 완료
이제 Dfinery에서 알림을 사용하기 위한 모든 준비가 완료되었습니다.
Last updated