[Flutter] 안드로이드 앱 배포하기
Flutter에서 하이드리드 앱 개발시
구글 플레이스토어에 비해 iOS 앱스토어에 배포하는 방법은 비교적 간단했다.
따로 키를 서명할 필요없이
xcode에서 Product > Archieve 해주고 Distributed App을 누른 뒤, AppStoreConnect에 업로드해주면 끝난다.
물론 Archieve를 누르기 전까지 여러가지의 에러 상황이 있었지만.. 에러 상황은 따로 기록해두기로..!
앱 아이콘(런치 아이콘) 등록 관련 내용은 여기선 생략!
> (안드로이드) 앱에 디지털 서명하기
Google Play 스토어에 출시하기 위해서는 반드시 앱에 디지털 서명을 해야한다.
1. KeyStore 만들기
2. 앱으로부터 KeyStore참조하기
3. Gradle에서 서명구성하기
1. KeyStore 만들기
하나의 키스토어로 여러 앱을 출시 할 수 있지만, 앱마다 각각 해주는 게 좋을 것 같아 새로 만들어주었다.
https://www.masterqna.com/android/39280
https://stackoverflow.com/questions/53516201/can-we-use-the-same-signing-key-for-two-different-android-apps
아래 명령어를 사용해서 key를 먼저 생성해준다.
// mac
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
물어보는 질문에 모두 대답하고 마지막에 y를 적어주면, key.jks 파일이 만들어진 경로를 알려주고 끝난다.
2. 앱으로부터 Keystore 참조하기
android > app 경로에 key.jks 파일을 넣어주고,
android > app 경로에 keystore 참조에 대한 구성을 담은 key.properties 파일을 생성해서 아래와 같은 코드를 입력하면 된다.
storePassword=<키생성시 입력한 암호>
keyPassword=<키생성시 입력한 암호>
keyAlias=key
storeFile=./key.jks
android/app 경로
공식문서에는 key.properties 파일을 개인적으로 보관하고 공개된 저장소에 업로드하지 않도록 적혀있으므로,
해당 파일을 android > .gitignore에 추가해주면 된다.
android/.gitignore
3. Gradle에서 서명 구성하기
앱의 서명을 구성하기 위하여 android > app > build.gradle을 수정해줄 차례이다.
첫번째, android { ... } 위에 아래의 코드를 추가해서 keystore 정보를 가져올 수 있도록 해준다.
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('app/key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android { ...
두번째, buildTypes 블럭을 아래 코드로 대체해준다. (debug -> release)
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
이렇게하면 앱의 release 빌드에서 자동으로 서명이 된다!
4. 빌드 구성 검토하기
공식 문서에서 검토하라고 한 것들을 검토해준다.
5. release 앱 번들 빌드하기
터미널을 열고 android 경로로 이동해서 아래 명령어로 appbundle을 빌드해준다.
flutter build appbundle
앱의 릴리즈 번들은 (app-release.abb)
플러터 프로젝트/build/app/outputs/bundle/release path에 생성된다.
6. 앱을 Play Console에 업로드
플레이스토어 콘솔에 app-release.abb파일을 직접 업로드하면 끝!
[참고 URL]