[플러터-안드로이드] Execution failed for task ':app:processDebugGoogleServices'.
아래는 해당 에러의 풀 구문이다.
여기서 주목해야할 껀 'No matching client found for package name 'com.cosmic.voyager''
이뜻은 패키지 이름을 찾을 수 없다는 뜻이다.
왜? 잘생각해보면 패키지이름을 바꿨거나 파이어베이스 패키지 이름 설정할때 분명 잘못된 패키지이름을 설정했을 것이다.
그럼 이제부터 고쳐보자.
Launching lib/main.dart on sdk gphone x86 in debug mode...
lib/main.dart:1
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name 'com.cosmic.voyager'
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 8s
Exception: Gradle task assembleDebug failed with exit code 1
Exited
원인분석하기
파이어베이스를 쓰는 사람이라면, google-services.json의 패키지 이름과 내 프로젝트의 이름을 다시 확인해보자.
google-services.json 위치 : android - app폴더아래있다.
"package_name": "com.example.star_wars"
나같은 경우는 이렇게 start_wars로 되있지만, 플러터 패키지이름 자체는
app - build. gradle
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.cosmic.voyager"
즉 두개의 이름이 다르다. 그럼이제 결정해야할시간, 플러터의 이름자체를 바꿀껀가? 아니면 파이어베이스를 바꿀껀가?
해결하기
방법 1. 플러터 패키지 이름자체를 바꿔 google-service.json과 일치시키려고할 경우
1.터미널
dart pub global activate rename
2.새로운 패키지이름 입력하기(com.company.appname)
1)안드로이드 패키지 이름바꾸기
dart pub global run rename --bundleId com.company.appname --target android
2)아이오에스 패키지 이름바꾸기
dart pub global run rename --bundleId com.company.appname --target ios
3.gradle.build 업데이트하기
defaultConfig {
applicationId "com.company.appname"
minSdkVersion 21
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
}
방법2. google-services.json내의 패키지 이름을 바꿀 경우. 이경우는 이 json을 업데이트하는게 아니라 파이어베이스에서 설정을 업데이트해 새로운 파일로 교체해야한다.
1.파이어베이스 콘솔을 연다 https://console.firebase.google.com/u/0/
로그인 - Google 계정
이메일 또는 휴대전화
accounts.google.com
2. 파이어베이스 콘솔에서 프로젝트 설정을 누른다.

그럼 프로젝트 설정 페이지가 열리고, 스크롤을 아래로 내리면 이렇게 패키지 이름을 확인할 수 있다.

패키지이름 부분을 보면 확실히 google-services.json이름과 맞지 않는다. 내가 중간에 이름을 바꿨기 때문에 이런일이 일어난거고. 해당 json파일은 더이상 필요하지 않다. 우리는 새로운 json파일에 새로운 이름으로 만들어줘야한다.
오른쪽 상단의 '앱추가' 버튼을 누르자
이후 안드로이드 아이콘을 누르고 안드로이드 패키지이름을 새롭게 넣어준다.

앱 등록을 누르고

이제 새로운 google-services.json을 받아 프로젝트에 넣어주면 된다.
이제 나의 google-servives.json의 패키지 이름은 아래와 같이변경되었다.
"package_name": "com.cosmic.voyager"
다시 파이어베이스 콘솔로 돌아와서
'다음'을 계속 눌러 이 스텝을 완료하면 프로젝트 설정페이지로 다시 넘어가고, 안드로이드 섹션에 새로운 앱이 추가된걸 볼 수 있다.
이제 이전 패키지 이름을 사용하는 앱을 눌러 '앱삭제' 버튼을 누르면 끝이다.

나는 start_wars( adnroid)를 다시 누른 후 '액삭제' 버튼을 눌러 영구적으로 삭제했다. (어차피 그 패키지 이름을 더이상 안쓸꺼니까)
