카테고리 없음

2021-11-1 앱에 파이어베이스 추가하기

콘요맘떼 2021. 11. 1. 16:26

1. 안드로이드

(1) 앱 등록에서 안드로이드를 선택한다.

(2) 요청사항에 따라 패키지 네임 등의 정보를 입력한다.

 

안드로이드 SHA-1 인증서 획득 방법

: (리액트 네이티브 기준) 루트 폴더에서 안드로이드 폴더로 이동 후 (cd android)

./gradlew signingReport 명령어를 실행한다.

(해당 명령어를 통해 Variant, Config, Store, Alias, MD5, SHA-1, SHA-256, Valid Until 등의 데이터를 획득할 수 있다.)

 

(3) google-services.json 파일을 다운로드한 후 android/app 폴더에 넣어준다.

(4) Firebase의 요청사항에 맞춰서 빌드 수준과 앱 수준의 build.gradle 파일을 수정해준다.

 

 

2. iOS

(1)~(2)는 안드로이드와 마찬가지로 진행한다.

(3) GoogleService-Info.plist 파일을 다운로드한 후 Xcode의 루트 폴더로 이동하여 해당 파일을 추가해준다.

 

※ 주의 : 여기서 plist파일은 드래그 앤 드롭으로 옮기면 안 되며 Xcode를 실행한 후

루트 폴더에서 우클릭-Add Files to {...} 를 통해서 추가해줘야 한다.

 

(4) Firebase의 요청사항에 따라 firebase SDK를 추가해준다.

- Podfile이 없는 경우 pod init으로 파일 생성

- Podfile에 pod'Firebase/Analytics' 문장과  pod'Firebase/Messaging' 문장을 추가해준다.

- Podfile을 저장한 후 pod install을 실행한다.

 

(5) AppDelegate.m 파일에 초기화 코드를 추가해준다.

- 상단에 #import <Firebase.h> 추가

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions
:(NSDictionary *)launchOptions {
 
[FIRApp configure]; 해당 구문을 추가해준다


 
return YES;
}

 

++ Firebase에서 iOS 기기로 푸쉬 알람을 보내기 위해서는 APN 설정이 필요하다. (Android Push Notification)

(6) 인증서 발급받기

- 키체인 접근 애플리케이션을 실행한다.

- 상단의 키체인 접근 탭에서 인증서 지원-인증 기관에서 인증서 요청을 선택한다.

- Apple 계정 메일 주소와 이름을 입력하고 디스크에 저장됨 / 본인이 키 쌍 정보 지정을 체크한다.

- 원하는 위치에 인증서를 저장한다.

인증서 발급 설정

 

(7) 인증키 생성하기

- https://developer.apple.com/ 로 이동하여 로그인한다.

- Account Certificates, IDs & Profiles로 이동한다.

- keys 탭으로 이동하여 새로운 키를 생성한다.

- 생성할 key의 이름을 입력한 후 첫 번째 항목인 APNs를 체크한다.

- 인증키를 다운로드 받은 후 Key ID와 다운로드 받은 인증키 파일(.p8)을 기억할 수 있는 곳에 안전히 보관한다.

(한 번 생성한 인증키는 다시 다운로드받을 수 없으므로 주의해야 한다.)

 

(8) 앱 ID 생성하기

- 이번엔 Identifiers 탭으로 이동해서 새로운 ID를 생성한다. (keys와 동일 레벨)

- 생성하는 ID는 가장 상단에 위치한 APP IDs를 선택한다.

- 이어서 App Type을 선택해준다.

 

- Description과 Bundle Identifier을 채워준 후 Explicit을 선택한다. 그리고 하단의 Capabilities 목록 중에서 Push Notifications를 선택하여 추가해준 뒤 키를 생성한다.


(9) Firebase iOS 앱에 APN 인증 등록

- Firebase 콘솔에서 프로젝트 설정-클라우드 메시지 탭으로 이동한다.

- Apple 앱 구성 섹션에서 현재 설정할 iOS 앱을 선택한다.

- APN 인증 키와 APN 인증서 두 가지 영역이 존재한다.

APN 인증 키는 .p8 파일에 해당하고 APN 인증서는 .p12 파일에 해당한다.

- APN 인증 키를 추가해준다 : (7)번 단계에서 다운로드한 .p8 파일, 같이 생성된 key ID, Team ID를 입력

- 위 사진에도 나와있다시피 APN 인증서는 개발용과 배포용을 따로 생성해줘야 하고 약 1년 정도의 만료 기한을 가지기 때문에 APN 인증 키가 더 선호되는 추세이다.

 

Team ID를 확인하는 방법

Apple Developers에 접속한 후 Account-Membership으로 이동하면 확인할 수 있다.

 

 

(10) Xcode로 capability 설정

- Xcode로 프로젝트를 실행한 후 Signing & Capabilities로 이동한다.

- +Capability를 클릭하여 Background Modes를 추가한 후 그 중에서 Remote notifications과 Background fetch를 체크한다.

- +Capability를 클릭하여 Push Notifications를 추가한다.

 

(10) Firebase 콘솔을 활용해서 테스트 메시지를 보내본다.

 

(11) 만약 여기까지 했는데도 안 된다면 APN 인증서를 등록한다.

- Apple Developers에 접속하여 아까 생성해준 Identifier로 들어간다.

- Capabilities 목록에서 Push Notifications를 찾은 후 Configure 버튼을 클릭한다.

- 개발과 배포 두 가지 인증서를 생성할 수 있다.

- 아까 (6)에서 만들어줬던 인증서를 바탕으로 각 인증서를 생성한다. (.cer 파일 다운로드)

(6)번 단계에서 만들어준 이 파일

- 두 .cer파일을 더블클릭하여 인증서를 등록한 후 우클릭-... 내보내기를 통해 각각의 .p12 파일을 획득한다.

(.p12 파일을 추출할 때 꼭 비밀번호를 설정하자)

- 각각의 .p12 파일들을 (9) 화면의 하단에 위치한 APN 인증서에 등록한다.

 

 

※ 중요한 사실 !

하루종일 콘솔에서 테스트 메시지를 날려가며 왜 안되지 했었는데 iOS는 시뮬레이터에서 Firebase notification을 받을 수 없다고 한다. 그래서 아이폰 연결해서 돌려보니 바로 작동 ㅠ 나처럼 뻘짓하는 사람이 없기를..

참고 : https://stackoverflow.com/questions/66040828/can-you-receive-fcm-push-notification-from-ios-simulator