[Flutter] 안드로이드 APK 파일 생성하는 방법

hidihyeonee·2023년 12월 27일
1
post-thumbnail

2023.12.27 작성

OS : macOs
개발환경 : Android Studio
개발언어 : Dart
프레임워크 : Flutter

일 년 만에 전설처럼 돌아옴

📌 안드로이드 APK 파일을 이틀 동안 2개의 프로젝트에서 추출하면서 마스터 했다.

처음 해보는 거라 시간 낭비를 많이 했다.
그래서 과거의 나를 구한다는 마음으로 적어본다.


우선 나는 출시 버전으로 APK 파일을 추출해야 했기 때문에 서명 키를 생성해야 한다.

서명 키 안 하면 나중에 원스토어나 플레이스토어에 올릴 때 서명 키 설정 안 했다고 다양하게(?) 지적한다.

1. 키스토어 생성

안드로이드 스튜디오 터미널에 다음과 같은 명령어를 입력한다.

keytool -genkey -v -keystore /path/to/your_keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias your_alias

(참고)
📌 /path/to/your_keystore.jks
📌 your_alias

이 두 부분은 나만의 경로와 별명으로 설정해야 한다.

나 같은 경우에는 "/Users/사용자이름/keystores/key.jks" 이렇게 경로를 설정하였다.

- keystores는 내가 생성한 폴더명이다.
- key.jks는 내가 생성한 파일명이다.

위 명령어 실행 시 여러 정보(이름, 조직, 암호 등)를 입력하라는 메시지가 나타난다.

입력한 후 엔터를 누르면 'keystores' 폴더에 키스토어 파일(key.jks)이 생성된다.

2. key.properties 파일 생성

안드로이드 폴더 안에 key.properties 파일 생성한다.

이 파일에는 키스토어 정보를 저장하는 것이다.

storePassword=키스토어 암호
keyPassword=키 암호
keyAlias=key
storeFile=키스토어 파일 경로

키스토어 생성 시 입력했던 정보를 위에 적어주면 된다.

3. build.gradle 파일 수정

경로 : android/app/build.gradle

build.gradle 파일을 열고 android 블록 내에 다음과 같은 코드를 추가한다.

상단 부분에

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

를 추가하고 (하단에 추가 했다가 오류 났음)

defaultConfig {} 아래에

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

를 추가해 준다.

여기서 빡침 포인트 ‼️ 🤬

signingConfig signingConfigs.release

맨 뒷부분에 무조건 .release로 되어있어야 한다.

난 모르고 .debug로 해놨다가 업로드 안 돼서 시간 낭비 오지게 했다...

4.APK 빌드

이제 터미널에 아래와 같은 명령어를 입력한다.

flutter build apk --release


터미널에 이렇게 뜬다면 잘 생성된 것이다.

5. APK 파일 추출

빌드가 완료되면, APK 파일은 build/app/outputs/flutter-apk/ 디렉토리에 생성된다.

  • 파일 이름은 app-release.apk.

이러한 과정으로 생성된 APK 파일은 배포하거나 테스트 장치에 설치할 수 있다.


추가로, APK 파일을 연속으로 하다 보면 추출했는데도 여전히 과거 파일일 때가 있는데

그럴 땐 터미널에

flutter clean                                                                                                     
flutter pub get

위 명령어를 해주고 다시

flutter build apk --release

APK 파일을 추출하면 된다.


아 근데 요즘 플레이스토어는 App Bundle로 제출해야함! (원스토어는 apk 가능)

App Bundle도 해봤는데 귀찮아서... 나중에 올릴게...

아무튼 끝!

profile
벨로그 쫌 재밌네?

0개의 댓글