흰오목눈이야 개발하자

Flutter 앱 자동 백업 중지 (allowBackup, fullBackupContent) 본문

Flutter

Flutter 앱 자동 백업 중지 (allowBackup, fullBackupContent)

흰오목눈이 2023. 9. 8. 19:03

문제


QA 팀원 중 한 분만 안드로이드 앱을 삭제하고 새로운 버전을 다운하면 앱이 작동되지 않는 에러가 발생했다.

캐시 문제일까 싶어 조사해 봤다.

 

 

원인


안드로이드의 경우 사용자의 데이터를 구글 드라이브에 자동으로 백업하는 기능이 있었다. 

해당 어플은 보안을 위해 flutter secure storage를 사용하고 있었기 때문에 데이터가 자동 저장되면 충돌하거나 예외가 발생할 가능성도 높았다.

앱의 자동 백업은 Android 6.0(API 수준 23) 이상에서 타겟팅하거나 실행되는 앱의 사용자 데이터를 자동으로 백업합니다. Android는 앱 데이터를 사용자의 Google Drive에 업로드하여 보존하며, 이곳의 앱 데이터는 사용자의 Google 계정 사용자 인증 정보에 따라 보호됩니다. 백업은 Android 9 이상을 실행하는 기기에서 기기의 PIN이나 패턴, 비밀번호를 사용하여 엔드 투 엔드 암호화됩니다. 데이터양은 사용자당 25MB로 제한됩니다. 백업 데이터 저장은 무료입니다. 앱에서 백업 절차를 맞춤설정하거나 백업을 사용 중지하여 선택 해제할 수 있습니다.

참고) https://developer.android.com/guide/topics/data/autobackup?hl=ko 

 

자동 백업으로 사용자 데이터 백업  |  Android 개발자  |  Android Developers

자동 백업으로 사용자 데이터 백업 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 앱의 자동 백업은 Android 6.0(API 수준 23) 이상에서 타겟팅하거나 실행되는

developer.android.com

 

해결


안드로이드 매니페스트(설정 파일)에서 자동 백업을 중지하는 코드를 추가하여 해결되었다.

 

 

코드 구현 과정


1. /android/app/src/main/AndoridManifest.xml 파일을 연다.

AndroidManifest.xml

2. application 안에 아래 코드를 추가해 준다. 원래 자동 백업을 위해 기본값으로 true로 설정되어 있다.

allowBackup와 fullBackupContent를 false로 바꿔주자.

 android:allowBackup="false"
 android:fullBackupContent="false"

3. 앱을 실행하고 문제없으면 빌드를 배포해 확인한다

 

(!) 주의점: 위 속성을 입력할 때 카멜케이스를 주의하자! 안 그러면 에러가 발생한다.