본문 바로가기
iOS

[iOS] Firebase 를 활용하기 & crashlytics 분석하기

by Odin_1204 2022. 10. 11.

 

애정이 담긴 나의 Service...😍
좀 더 자세히 분석, 적용해보고 싶당~!

 

 

 

 

 

안녕하세요. 오딘(Odin)입니다.

 

여러분 제가 저번에 app을 새롭게 출시를 했지 않습니까?!? 음하하하 😁

보러가기 -> https://odinios.tistory.com/10

그러면 app도 출시 했겠다~~  이제 다 끝난걸까요??

 

아니죠!! app을 만들었으니 해당 app을 유저들이 잘 사용하고 있는지,

사용자에게 맞춤으로 Noti 알림을 제공한다던지,
error가 나서 app이 꺼지는 문제가 발생한건 아닌지 확인을 해봐야겠죠~??

 

물론 해당 appstore Connect에서 분석 정도는 가능하지만
추후 로그인, Noti 알림 등 서버가 필요한 기능들을 혼자서 모두 개발 하기에는

리소스가 너무 많이 들다보니 이런 것들을 쉽게 사용할 수 있는 Firebase를 이용해 보려고 합니다.

 

그러면 같이 firebase를 적용해보고 활용해보러 가볼까요~!?

 

 

 

 

 

 


 

 

Firebase 란?

-> 서버 없이도 앱/ 웹 서비스를 만들 수 있도록 도와주는 Tool

모바일 서버를 개발하기 위해서는 인증, 데이터베이스, 푸시 알람, 스토리지, API 등 모든 것을 개발해야 합니다.
그러나 이러한 복잡한 과정들을 매번 개발할 때마다 하는 것은 시간낭비이므로
FireBase는 이 모든 플렛폼을 프로젝트 구축 시 자동적으로 생성해 줍니다. 또한 서버를 구축하기 위해서 리눅스 명령어를 알 필요도 없으며 도메인을 구입할 필요가 없고 개발하는 동안에는 서버를 구입할 필요도 없어서 적은 비용으로 매우 좋은 앱을 쉽게 만들 수 있습니다.

 

Firebase 장점

1) 무료!! 💰

      -> 월 무료 사용량이 존재 (이거 넘으면 비쌈..!!)

2) 인증 시스템을 지원

      -> 매번 서버로 개발하기 까다로운 로그인을 담당하는 데이터베이스를 지원해줍니다 

3) FireBase는 NoSQl 기반의 3세대 데이터베이스

      -> 스키마가 없어 유연하며 자유로운 데이터 구조로 빠르며 RTSP를 지원하여 소켓 기반 서버보다 실시간 통신 코드가 간결함

4) Analytics를 제공

      -> 어떤 page가 인기가 많은지, 어디서 crush가 일어났는지 등에 대한 정보를 제공해줍니다.

 

 

 

 


 

 

Firebase 적용하기

1. Firebase Project 생성

Firebase-> https://firebase.google.com/?hl=ko 

Xocde project 에 대한 분석 및 다양한 작업을 delegate 해줄 수 있는 Firebase를 생성해줍시다!

 

프로젝트 추가 (+) -> app 이름 -> Google 에널리틱스 권장 -> 'Default Account for Firebase'

 

 

 

2. XCode Project 내부에 Firebase Project 추가

iOS 앱 추가하기를 선택하고 순서에 맞게 시키는 대로 잘 적용해주시면 됩니다!!

 

 

Firebase 앱 등록, GoogleService-Info.plist 다운로드하여 프로젝트에 포함 시키기

 

 

 

FireBase SDK 추가하는 부분에서 

github -> https://github.com/firebase/firebase-ios-sdk

SPM 으로 해당 firebase Package를 추가해주세요~!

자세한 정보 -> https://firebase.google.com/docs/ios/setup?authuser=0&%3Bhl=ko&hl=ko

 

위에서 필요하다고 생각되는 package Product들을 체크한 뒤 추가해 주시면 됩니다~!

(저는 간단하게 충돌 관련 정보, push Noti에 대한 product들을 체크해 주었습니다~)

 

 

 

 

이렇게 해주면 XCode 내부에 Firebase 적용하기 끝!!😁😁😁

 

 

 


 

 

Crash 관련 정보

crash 관련해서

자세한 정보 -> https://firebase.google.com/docs/analytics/events?hl=ko&platform=ios 

XCode 디버그 콘솔에서 이벤트 보기

Firebase Debug 모드 활성화

  • 상세 로깅을 사용 설정하여 SDK의 이벤트 로깅을 모니터링하면 이벤트가 올바르게 로깅되는지 확인할 수 있습니다.
    여기에는 자동으로 로깅되는 이벤트와 수동으로 로깅되는 이벤트가 모두 포함됩니다
  • Firebase 콘솔 안에서 데이터를 확인하는 부분인 DebugView는 (사용자 기기의 배터리 절약, 네트워크 데이터 사용량을 줄이기 위하여) 약 1시간동안 앱에서 취합된 후 일괄 업로드하지만, Arguments를 추가할 경우 지연 시간을 최소화하여 분석에 집중 가능합니다.

 

 

logEvent( ) 사용하기

-> logEvent를 활용하면 어떤 사용자가 어떤 작동을 많이 하는지에 대한 log를 확인할 수 있게 됩니다!

 

저는 tapCrashButton을 눌렀을 떄 filefunction이 뜨도록 처리를 했습니다.

import FirebaseAnalytics
...
    override func viewDidLoad() {
        super.viewDidLoad()
        
        // nickname에 대한 정보를 호출하게 된다면 정보를 알 수 있음
        Analytics.logEvent("event Name", parameters: [
          "example1": "example1",
          "example2": "example2",
        ])
    } 
...
    @IBAction func tapCrashButton(_ sender: UIButton) {
        Analytics.logEvent("tapCrashButton", parameters: [
          "file": #file,
          "function": #function,
        ])
    }

 

 

이처럼 User가 어떤 부분에 많이 접근하는지, 어디서 오류가 나는지에 대한 체크도 쉽게 확인 할 수 있는 것을 볼 수 있었습니다!!

이번 시간에는 firebase 넣고 간단하게 사용해보았습니다.

 

다음 번에는 firebase를 이용해 Noti 알람을 한번 넘겨보도록 할게요~!!

-> Firebase를 이용한 Push 알림 보내기

 

  •