iOS 개발일지
1011 새싹 67회차 정리 - Firebase 본문
iOS 앱 개발자 데뷔 과정 67회차
#1. Firebase
Firebase는 구글이 소유하고 있는 모바일 애플리케이션 개발 플랫폼이다.
iOS 개발자이지만...
Firebase를 활용해 앱에 관련된 정보를 수집하고, 이를 활용해 앱을 개선해볼 수 있다.
Firebase 내에는 정말 많은 기능이 있으며, 이 중 아래 세 개의 기능을 적용해봤다.
- Analytics
https://firebase.google.com/docs/analytics/events?hl=ko&authuser=0&platform=ios
사용자가 앱을 사용한 시간, 클래스 별 조회수, 이벤트 별 조회수 등을 확인할 수 있다.
사용자의 대략적인 위치 (국가) 등도 확인할 수 있지만 특정할 수 없으며, 개인 정보와도 연결되지 않는다.
문서를 보며 따라할 수 있을 정도로 간단하므로, 해당 기능 사용에 대한 자세한 설명은 생략한다.
- Crashlytics
https://firebase.google.com/docs/crashlytics/get-started?hl=ko&authuser=0&platform=ios
사용자가 앱을 사용하며 비정상적인 종료를 경험했을 때, 이에 대한 정보를 확인할 수 있다.
설정하는 방법이 조금 헷갈릴 수 있는데, Analytics와 다른 부분은 아래와 같다.
- Remote Notification 동작 구조
Firebase의 Cloud Messaging에 대해 알아보기 전에, Remote Notification의 동작 구조에 대해 이해해보자.
Device에서 APNs에 푸시 토큰을 요청하면 APNs는 푸시 토큰을 디바이스에 발급해주고, 이후 디바이스는 Provider에 푸시 토큰을 전달해준다.
푸시 토큰을 전달받은 Provider는 추후 디바이스에 푸시를 전공할 때 APNs에 요청하고, APNs가 디바이스에 푸시를 전송한다.
이렇게, Remote Notification의 동작 구조를 보면 항상 APNs에 거쳐 푸시를 전송하게 된다.
- Remote Notification 구현 준비
시뮬레이터에서는 기본적으로 푸시 알림 테스트가 불가하다.
따라서 Remote Notification을 구현하고, 받아보기 위해서는 실제 iOS 기기가 필요하다.
Xcode 11.4 부터 별도 설정을 통해 시뮬레이터에서도 푸시를 확인해볼 수 있기는 하다.
그리고 기존에 발급 받아놓은 푸시 키가 없다면, 애플 개발자 사이트에서 발급받아야 한다.
유료 애플 개발자 프로그램에 등록되어 있어야 푸시 키를 발급받을 수 있으며, 발급 받은 푸시 키는 여러 앱에 사용이 가능하다.
발급받은 푸시 키는 최초 한번밖에 다운로드가 불가하기 때문에, 유실되지 않도록 잘 관리해야 한다.
재발급은 가능하지만, 그럴 경우 해당 푸시 키를 사용중인 모든 앱에 대해 조치가 필요하기 때문에 매우 귀찮아질 수 있다...
여기까지 완료되었다면, 다음은 Xcode의 App(앱) > Capabilities(기능) 에서 푸시 알림 사용 설정을 해야 한다.
- [참고] p8 vs p12
p12 인증서는 p8 인증키가 등장한 이후에는 거의 사용되지 않는다.
p8 : public key로 여러 앱에서 인증키 사용이 가능하고, 만료 기간이 없다.
하지만 한번 다운로드 후 재다운로드가 불가하기 때문에 인증키 관리가 필요하다.
p12 : private key로 각 앱 당 인증서 (개발용 푸시 인증서/배포용 푸시 인증서)가 필요하다.
만료 기간은 1년이기 때문에 만료 기간이 지나기 전에 인증서 갱신을 해줘야 한다.
만약 인증서를 갱신하지 않을 경우, 만료된 인증서로 인해 서비스에서 푸시 송수신이 불가할 수 있다.
- Cloud Messaging
https://firebase.google.com/docs/cloud-messaging/ios/client?authuser=0&hl=ko
Firebase에서는 푸시를 Cloud Messaging Service라고 지칭하고 있다.
Cloud Messaging Service를 이용하면 별도의 서버 없이 Remote Notification 을 보내는 것이 가능하다.
우선, 푸시 인증키 및 개발자 팀 키를 등록하기 위해 Firebase의 해당 페이지로 들어간다.
위에서 발급받아놓은 인증 키를 업로드하고, 키 ID와 팀 ID를 입력한다.
키 ID는 발급받은 키 파일명 뒷부분이며, 팀 ID는 애플 개발자 사이트에서 확인할 수 있다.
그리고 AppDelegate에서 코드를 작성해야 한다.
iOS 시스템 정책으로, 원격 알림 시스템에 앱 등록하는 과정이 필요하다.
파이어베이스도 푸시를 전송할 때 APNs 서버에 요청하게 되므로, 실질적 발송 및 관리자는 애플 시스템의 영향을 받는다.
그리고 파이어베이스가 푸시 메세지를 대신 전송할 수 있도록 대리자를 설정하는 과정이 필요하다.
이제 테스트 메세지를 전송해보기 위해, 콘솔에서 토큰을 확인한다.
내용을 입력하고 테스트 메세지 전송 버튼을 누르면 위와 같은 창이 뜨며, 여기에 위에서 체크해둔 토큰을 입력하면 해당 기기에 테스트 메세지가 전송된다.
번외로, 추가한 뱃지와 알림은 SceneDelegate에서 제거할 수 있다.
'SeSAC iOS 데뷔과정 2기' 카테고리의 다른 글
1013 새싹 69회차 정리 - Realm Migration (0) | 2022.10.13 |
---|---|
1012 새싹 68회차 정리 - Remote Notification (0) | 2022.10.12 |
0906 새싹 46회차 정리 - Localization (0) | 2022.09.06 |
0905 새싹 45회차 정리 - ARC (0) | 2022.09.05 |
0904 9주차 마무리 - 2차 평가과제 (0) | 2022.09.05 |