Mobile App/Android

[Android] FCM 메세지 background에서 실행 안될때 - API level 31 (안드로이드 12)

Jade Choe 2022. 3. 15. 15:33
SMALL

플레이스토어에 targetSdkVersion이 31이하면 앱이 올라가지 않아서 31로 맞춘 후

아래 형식으로 FCM 메세지를 보내면

백그라운드에서 앱이 실행되지 않는 문제가 생겼다.

{
    "to": "<token>",
    "notification": {
        "title": "<title>",
        "body": "<body>",
        "click_action": "MAIN_ACTIVITY"
    },
    "data": {
        "title": "<title>",
        "body": "<body>"
    }
}

안드로이드 10, 11이 설치된 기기에서는 정상인데, 안드로이드 12에서만 해당 오류가 발생했다.

 

위에서 notification을 빼면 실행이 잘 되긴 하는데, 백엔드에서는 플랫폼 구분 없이 전송하는 형태여서 여태 개발된 많은 앱들을 전부 수정해줄 수는 없는 노릇이었다.

 

구글링을 아무리 해봐도 옛날 자료들뿐이라 혹시나 하는 마음에 firebase-bom 버전을 확인해봤다.

Gradle의 implemetation 항목들은 새 버전이 있을 경우 위 gson처럼 노란색으로 표시해 주는데, firebase-bom은 새 버전이 나와도 표기를 해주지 않아 여태 모르고 있었던 것이다.

 

 

Android 및 Firebase 자세히 알아보기  |  Firebase Documentation

의견 보내기 Android 및 Firebase 자세히 알아보기 Firebase를 사용하여 Android 프로젝트를 개발할 때 익숙하지 않거나 Firebase에만 해당하는 개념을 발견할 수도 있습니다. 이 페이지에서는 이러한 질문

firebase.google.com

위 링크에 따라 최신버전으로 바꿔준다.

 

implementation platform('com.google.firebase:firebase-bom:29.1.0')

 

 

이거 하나때문에 얼마나 삽질을 했는지..어휴..

BIG