1. 앱 서명에 사용될 업로드 키 생성
$ keytool -genkey -v -keystore ./app.keystore -keyalg RSA -keysize 2048 -validity 10950 -alias appKey
-genkey: 키 생성 명령
-v: 상세 정보 표시
-keystore: 키 저장소 위치 및 이름
-keyalg: 알고리즘
-keysize: 키 비트 크기
-validity: 유효 기간(일)
-alias: 키 별칭
키 저장소 비밀번호 입력:
새 비밀번호 다시 입력:
Enter the distinguished name. Provide a single dot (.) to leave a sub-component empty or press ENTER to use the default value in braces.
이름과 성을 입력하십시오.
[Unknown]: myname
조직 단위 이름을 입력하십시오.
[Unknown]: dev
조직 이름을 입력하십시오.
[Unknown]: company
구/군/시 이름을 입력하십시오?
[Unknown]: city
시/도 이름을 입력하십시오.
[Unknown]: state
이 조직의 두 자리 국가 코드를 입력하십시오.
[Unknown]: KR
CN=myname, OU=dev, O=company, L=city, ST=state, C=KR이(가) 맞습니까?
[아니오]: y 입력
다음에 대해 유효 기간이 10,950일인 2,048비트 RSA 키 쌍 및 자체 서명된 인증서(SHA384withRSA)를 생성하는 중
: CN=myname, OU=dev, O=company, L=city, ST=state, C=KR
[./app.keystore을(를) 저장하는 중]
2. 생성한 키는 android/app 디렉토리에 복사. 이 파일은 반드시 .gitignore에 등록돼 있어야 한다.
3. android 디렉토리에 생성 키스토어의 참조정보를 생성한다. 파일 이름은 key.properties. 이 파일도 반드시 .gitignore에 등록돼 있어야 한다.
storePassword=키스토어 생성시 입력한 비밀번호
keyPassword=키스토어 생성시 입력한 비밀번호
keyAlias=a키스토어 생성시 입력한 별칭
storeFile=app.keystore // 다른 위치에 있다면 해당 경로 입력
4. android/app/build.gradle 파일을 열어 android 블럭 바로 앞에 아래 코드를 삽입한다.
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
}
5. buildTypes 블럭을 찾아 다음 내용으로 변경한다.
// buildTypes {
// release {
// // TODO: Add your own signing config for the release build.
// // Signing with the debug keys for now, so `flutter run --release` works.
// signingConfig signingConfigs.debug
// }
// }
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
6. 캐시된 빌드가 앱 서명 절차에 영향을 미칠 수 있으므로 다음 명령 실행
$ flutter clean
7. 빌드
$ flutter build apk --release --target-platform=android-arm64
8. 정상적으로 완료되면 app-release.apk 파일 생성
반응형