adb shell setprop debug.firebase.analytics.app PACKAGE_NAME # debug 모드 설정 시 사용, PACKAGE_NAME은 자기 앱의 패키지명을 넣자
adb shell setprop debug.firebase.analytics.app .none. # debug 모드 해제 시 사용
Flutter 앱에 Firebase Analytics를 추가하는 작업은 상당히 간단한 편이기 때문에 아마 문서를 보면 잘 따라할 수 있을 것이라고 생각된다. Firebase Analytics를 추가했다고 가정하겠다. 추가하는 작업이 궁금하다면 다음 링크를 보고 작업하면 될 것 같다. https://firebase.google.com/docs/analytics/get-started?platform=flutter
Firebase Analytics를 추가했다면 앞으로의 기획 및 사업 방향에 대해 도움을 줄만한 데이터를 얻을 수 있게 될 것이다. 클릭률, 전환율, 체류시간, 또 직접 커스텀 이벤트를 로깅할 수도 있다. 이렇게 이벤트를 로깅할 때, Analytics SDK가 로깅되는 즉시 실시간으로 서버에 송신하지는 않는다고 한다. 약 1시간 정도까지 이벤트를 모아서 배치로 서버에 송신되는 메커니즘이라고 한다. 이런 경우, 내가 구현한 Analytics 관련 코드를 검증하기 위해서는 조금 번거로울 수 있다. 이렇게 나의 구현을 검증하기 위해서, Analytics SDK가 잘 구동되는지 검증하기 위해서 딱 맞춤인 것이 debug mode이다. Debug mode로 로깅되는 이벤트들은 운영 환경의 측정 결과에 영향을 주지 않도록 측정 결과에서는 제외된다고 한다.
다음 구글 문서 링크를 참고하면 어떻게 debug mode를 켤 수 있는지 나와있다. Flutter에 대해서 따로 설명이 있지는 않고 iOS, Android에 대해서만 설명이 있는데, 설명을 보고 따라하다보면 Flutter로 개발하는 입장에서 삽질할만한 함정이 있다. (오늘 함정에 빠져서 몇시간을 헤맨 것 같다;;)
아래 설정을 하고 google analytics의 DebugView에 이벤트가 잘 로깅이 되면 설정이 잘 된 것이다. 하지만 함정에 빠진다면,,, DebugView에 이벤트가 안 찍힐 수가 있다. 함정을 잘 피하도록 하자.
1) Android의 경우
안드로이드의 경우, 터미널에서 명령어를 통해서 디버그 모드를 설정하면 된다.
Debug mode 설정 시)
adb shell setprop debug.firebase.analytics.app PACKAGE_NAME
Debug mode 해제 시)
adb shell setprop debug.firebase.analytics.app .none.
함정 돌파법) https://stackoverflow.com/questions/42769236/firebase-analytics-debug-view-does-not-show-anything
함정1) 안드로이드 기기 및 에뮬레이터의 시간이 잘 맞춰져있는지 확인한다.
함정2) 그래도 안되면 app storage 를 clear하자. (보통, 앱 아이콘을 꾹 눌러서 정보 아이콘 누르면 메뉴가 나올 것이다. 필자는 이것을 하니까 해결됐다)
함정3) 그래도 안되면 앱을 지웠다 다시 설치하자.
2) iOS의 경우
Xcode에서 Product > Scheme > Edit Scheme으로 들어가면 커맨드 라인 인자를 줄 수 있다. 설정 시에는 '-FIRDebugEnabled' 인자를 해제 시에는 '-FIRDebugDisabled' 인자를 넣어주자.
여기서의 함정은
함정 관련 링크) https://github.com/flutter/flutter/issues/17043
함정) Xcode에서 준 인자가 'flutter run'이나 Android Studio의 Run에서는 적용이 안 된다는 것이다. 필자는 Android Studio의 Run을 사용하는데 터미널을 확인했을 때 '-FIRDebugEnabled' 옵션이 적용되지 않았다는 식의 로그가 찍혀서 많이 찾다가 위 github 이슈를 발견하였다. 인자를 적용하고 싶다면 Xcode에서 Run을 해야한다. 이 함정 때문에 많이 헤맸다.
그외 헷갈리는 점) '-FIRDebugEnabled'도 있고 '-FIRAnalyticsDebugEnabled'도 있다. 전자는 구글의 문서에서 설명하는 인자고 후자는 로그를 찍었을 때 나오는 설명에서 말해주는 인자이다. 어떤 것을 써도 상관은 없다는 듯 하다.
그 외에도 예전에 패키지명을 작업 중간에 변경을 해서 설정이 꼬여서 그걸로도 삽질을 좀 한 것 같다. 역시 개발은 삽질을 피할 수 없는 것인가... ㅋㅋㅋ 누군가는 좀 더 빠르게 함정을 피해갔으면 좋겠다.
좋은 하루 되세요 :)
'개발관련' 카테고리의 다른 글
PyCharm 예전 버전 UI로 되돌리는 방법 (0) | 2023.06.23 |
---|---|
Xcode 베타 버전 사용 시 주의할 점 (0) | 2023.06.23 |
아이폰에는 왜 백버튼이 없을까? (0) | 2023.06.13 |
[AdMob] Content obscuring Google-served ads 이슈 현상 및 조치 방안 (0) | 2023.05.05 |
[Flutter] Flutter로 앱 개발 시에 앱 용량이 너무 크게 나오는 현상 해결방법 (0) | 2023.03.06 |