일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- GitHub
- TextField
- Flutter
- GetX
- wrap
- Android
- database
- swift
- 간단리뷰
- sqflite
- AppBar
- ios
- 플러터
- 카카오
- 라이언
- react
- error
- datetime
- xcode
- M1
- 데스크셋업
- 춘식
- AppleSilicon
- 데스크테리어
- Git
- listview
- 내돈내산
- list
- VSCode
- visualstudiocode
- Today
- Total
welcome to my blog
[Flutter] android release build 앱빌드하기 본문
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
더 알아볼것:
androidstudio > build > generate signed bundle/apk ... 에서 생성하는 방법도 있는데
잘 안돼서 위의 방법대로 했더니 잘 되었다. 다음에는 이렇게 생성하는 방법도 다시 시도해봐야겠다.
'Flutter' 카테고리의 다른 글
[Flutter] 자동완성 단축키 (0) | 2021.12.16 |
---|---|
[Flutter] DropdownButton (0) | 2021.12.10 |
[Flutter] android apk 설치하기 / database 꺼내 보기 (0) | 2021.12.03 |
[Flutter] GetX + obs 업데이트가 안돼 (0) | 2021.11.26 |
[Flutter] Database error - Null check operator used on a null value (0) | 2021.11.23 |