Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

coding etude

[flutter android] Could not get unknown property 'release' for SigningConfig container of type org.gradle.api.internal.FactoryNamedDomainObjectContainer. 본문

Flutter(Dart)

[flutter android] Could not get unknown property 'release' for SigningConfig container of type org.gradle.api.internal.FactoryNamedDomainObjectContainer.

코코리니 2024. 1. 12. 00:04

play store console 에 최초 빌드한 파일을 업로드 하려고 하면 debug 모드의 앱은 등록 할 수 없다는 오류가 나온다.

최소로 만든 앱에는 대부분의 설정값이 기본적으로 debug 모드로 설정이 되어 있기 때문에 꼭 확인해 주어야 하는 부분인것 같다.

project/android/app/build.gradle

build.gradle 를 확인하다 보면 bulidTypes 의 debug에 release 가 되어 있는것을 확인 할 수 있다.

그래서, debug  아래쪽에 release를 만들어 준 후 SigningConfig 의 값을 설정하면... 짜잔!!!

당연하게도 release 의 값을 찾을 수 없다는 not found 오류가 뜬다.. 404 도 아니고...

아무튼... 이제부터 다음 순서에 맞게 SigningConfig의 값을 세팅해 주어야 한다.

 

1. keystore 파일을 생성해 주어야 한다. 

keystore는 앱 개발자에 대한 정보가 포함되어 있는 암호화된 파일이라고 한다.
Google Play에 Android앱을 배포할 때 KeyStore로 서명한 APK 또는 Bundle 파일이 필요하며, 업데이트 버전을 배포 시 기존과 동일한 KeyStore로 서명한 APK 또는 Bundle 파일만 배포가 가능하다.
이는 APK 또는 Bundle 파일을 생성할 때 KeyStore로 서명하므로써 어떤 개발자가 생성한 앱인지 인증하는 것이고, 동일한 개발자가 생성한 앱만 배포가능하게 하므로써 다른 개발자가 의도치 못한 앱 배포를 하지 못하게 방지해 준다.

 

keystore는 android studio를 통해서 만들거나 터미널을 통해 만들 수도 있다. 편한 방법을 사용해보자!

(keystore 에 대해서는 추후에 자세히 포스팅 하도록 하겠다.)

 

2. key.properties 값을 세팅 해주아야 한다.

만들어진 keystore.jsk 파일을 ./android/app 폴더 안에 넣어주고 ./android 폴더에 key.properties 파일을 만들어야한다. 

storePassword=설정한비밀번호
keyPassword=다시한번비밀번호
keyAlias=별칭
storeFile=파일명(ex. keystore.jsk)

위의 값을 입력해 주고 저장. 

 

3. app/build.gradle 파을을 다시 수정해 주어야 한다.

이제 처음으로 돌아가서 오류가 난 부분을 수정해 주면 된다.  SigningConfig 의 값을 설정해 주고 ,

buildTypes의 release 에 값을 입력해 주면 된다.

(그냥 복붙은 안되요 아래 사진처럼 복붙 하세요)
signingConfigs {
    release { keyAlias keystoreProperties['keyAlias']
    keyPassword keystoreProperties['keyPassword']
    storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
    storePassword keystoreProperties['storePassword']
}

buildTypes {
    debug {
        signingConfig signingConfigs.debug
    }
    release {
        signingConfig signingConfigs.release
        이하 내용은 다음 포스팅에 proGuard 를 설명 할 때 포스팅...
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

 

끝.