본문 바로가기

프로그래밍/개발메모

flutter aab 앱 서명 하기 / 스토어에 올리기

반응형

문서의 설명이 유연하거나 위치에 따라 이상해서 되는 방법으로 다시 정리하겠습니다.

참고 문서:  https://docs.flutter.dev/deployment/android

 

Build and release an Android app

How to prepare for and release an Android app to the Play store.

docs.flutter.dev

 

문서의 함정

문서에서 고치라는 부분인데 if 처리를 해놯네요

파일이 없으면 빌드가 중단되야하는데 이걸 넘겨버려서 오류를 찾기 더 어렵게 되어있습니다.

정말 쓸모없고 문제 찾기도 어렵게하는 방법이였습니다.

 

jks 파일을 만드는 온갖 어려운 방법을 알려주는데 괜히 보면 시간낭비이니 잘 피하시길 ...

 

 

1. jsk 파일 만들기

keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias [별명]

[별명] 부분은 알아서 고치시고 key.jks 는 생성할 파일명인데 이파일명 기준으로 작성되니 그대로 쓰시길

암호가 두개 있습니다. 확인을위해 한번더 입력하기 때문에 총 4번을 입력하는데

다 같은걸 입력해야 관리가 쉽습니다.

여러 정보를 요구하는데 다 입력안해도 되니 넘어가시고

[예/아니오] 이부분 나오면 y 를 입력합니다.

그다음에 두번째 암호를 입력하라는데 바로 엔터치면 위에서 입력한 암호와 동일하게 셋팅됩니다.

저는 동일하게 했습니다. 절대 중요한게 아니니 복잡하게 하지마세요

 

 

2. key.properties

만들 필요 없습니다. 넘어갑니다.

jks 의 암호를 노출 시키지 않기위해서 다른파일에서 읽는건데
복잡하고 노출되도 활용할만한 가치가 없습니다.

 

3. build.gradle 수정

build.gradle 은 파일이 두군데 있습니다.

[내 플러터 프로젝트]/android/app/build.gradle 을 수정하세요

buildTypes { <-- 이부분을 수정합니다.
 
 

    signingConfigs {
        release {
            storeFile file("../../key.jks")
            keyAlias = "[별명]"
            keyPassword = "[암호]"
            storePassword = "[암호]"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
 

buildTypes  위에 signingConfigs  가 오고
buildTypes   안에는 debug 가 release 로 변경되었습니다.

 

 

4. 파일위치 점검

[내 플러토 프로젝트]
  ㄴ android
       ㄴ app
            build.gradle
key.jks

즉 key.jks 파일은 [내 플러토 프로젝트] 에 두시면 됩니다.

pubspec.yaml
analysis_options.yaml
이 파일들이 있는 폴더에 같이 두세요

요로케

 

 

5. 빌드하기

빌드는 터미널 명령어로 이걸 치세요 

flutter build aab

 

성공하면 녹색으로 알려줍니다.

 

6. 스토어에 올리기

결과물이 있는 폴더

[내 플러터 프로젝트] / build / app / outputs / bundle / release

아주 깊숙한 곳에있습니다.

 

 

7. 다음번 스토어에 올릴때 빌드 코드를 변경하셔야합니다.

위에서 고친 build.gradle 파일에 이런게 있습니다.

flutter.versionCode 이걸로 검색하시면 

local.properties 라는 파일에 정의 되어있는데 스토어에 올릴때마다 이 숫자를 하나씩 올려야합니다.

자주 고쳐야하니 기억해두시면 좋습니다.

 

 

 

 

 

반응형