반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
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
Archives
Today
Total
관리 메뉴

welcome to my blog

[Flutter] android release build 앱빌드하기 본문

Flutter

[Flutter] android release build 앱빌드하기

_annie_ 2021. 12. 6. 20:00
728x90

Flutter로 android release build 하기

 

flutter build appbundle 명령어를 입력하면 분명 release 폴더에 파일이 생기는데 직접 스토어에 올리려고보면

debug파일이라고 뜨는것이다 !?!?!

build variants를 release로 변경하라고 해서 변경도 해줬는데 말이다

 

결론적으로 앱 번들이 잘못설정되어있었고, 다음과 같은 방식을 적용해보았다.

 

googleplay 스토어에 출시하기 위해서는 앱에 디지털 서명을 해야한다.

(2022년부터는 apk말고 appbundle로만 출시가 가능한듯 싶다)

 

1. keystore 만들기 (mac)

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

위 명령어를 입력하면

키 저장소 비밀번호 입력 : 
새 비밀번호 다시 입력 : 
이름과 성을 입력하십시오. :
조직 단위 이름을 입력하십시오 : 
조직 이름을 입력하십시오 : 
구/군/시 이름을 입력하십시오 : 
시/도 이름을 입력하십시오 : 
이 조직의 두 자리 국가 코드를 입력하십시오 :

다음을 입력해주고( 저장소 비밀번호는 잊어버리지 않도록 메모해두는것이 좋다 )

다 입력하고나면 "~~~가 맞습니까?" 라는 물음이 또 나온다.

그때 y 를 입력해주면 비밀번호를 또 입력하라고 나온다 (위에서 적어주었던 비밀번호 똑같이 입력해주면됨)

 

user 폴더에 key.jks라는 파일의 keystore 가 생성되었다!

 

2. 1번에서 생성한 keystore 앱에서 참조하기

android 폴더 하위에 key.properties 파일을 생성하고 다음 내용을 붙여넣는다.

storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<key store 파일 위치, 예) /Users/<user name>/key.jks>

storePassword와 keyPassword에 1번에서 생성해준 비밀번호를 넣는다.

<>는 삭제한다. ex)storePassword=123456

keyAlias는 그대로 두고

storeFile에는 아까 생성한 key.jks의 디렉토리 경로를 넣어준다.

근데 나의 경우 그냥 android/app 폴더 하위에 key.jks파일을 옮겼고 key.jks라고만 적어주었다.

 

3. Gradle file 수정하기

android/app/build.gradle 파일을 열어서수정한다.

android를 검색해서 바로 위에 다음 코드를 추가한다.

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
	keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

 

android 내부에 기존에 있던 buildTypes를 삭제하고 다음 코드를 추가한다.

   signingConfigs {
       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile file(keystoreProperties['storeFile'])
           storePassword keystoreProperties['storePassword']
       }
   }
   buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }

 

 

4. flutter 프로젝트에서 build 하면 된다.

flutter build appbundle

 

flutter프로젝트폴더/build/app/outputs/bundle/release 폴더에 가보면 app-release.aab 파일이 생성되어있는것을 확인 할 수 있다.

 

생성된 파일을 playconsole에 등록이 되었다!

과연 통과할수 있을것인지... 🤔ㅎㅎㅎㅎ

 

 

참고 : 

https://flutter-ko.dev/docs/deployment/android

 

Android 앱 출시 준비하기

Flutter 앱을 개발하는 동안, 커멘드 라인에서의 `flutter run`을 실행하거나IDE에 있는 툴바 **Run** 과 **Debug**를 선택하여 앱을 테스트할 수 있습니다. Flutter는 기본적으로 앱의 _debug_ 버전을 빌드합니

flutter-ko.dev

 

 

더 알아볼것:

androidstudio > build > generate signed bundle/apk ... 에서 생성하는 방법도 있는데

잘 안돼서 위의 방법대로 했더니 잘 되었다. 다음에는 이렇게 생성하는 방법도 다시 시도해봐야겠다.

728x90
반응형