Flutter로 개발한 앱 플레이스토어(Play Store)에 배포하기 (2) - 앱 서명하기
- 프로그래밍 언어/Flutter
- 2020. 5. 18. 08:00
Flutter로 개발한 앱 플레이스토어(Play Store)에 배포하기 시리즈
Google Play 스토어에 출시하기 위해서는 반드시 앱에 디지털 서명을 해야 합니다.
만약 디지털 서명을 하지 않을 시 Google Play 스토어에 배포를 할 수 없으므로 해당 포스팅을 참고하여
앱에 디지털 서명을 하시길 바랍니다.
keystore 만들기
그런 다음 아래 명령어를 입력합니다.
(참고로, 경로 부분에 USER_NAME을 컴퓨터 이름으로 변경한 후 실행시킵니다.)
# MAC / LINUX
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
# Windows
keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
그럼 아래와 같이 전자 서명에 들어갈 항목을 입력하는 부분이 나오게 됩니다.
해당 질문에 각각 맞게 입력을 해줍니다.
각 질문의 대한 내용은 아래와 같습니다.
-
Q > What is your first and last name? 당신의 첫번째와 마지막 이름은 무엇인가요?
-
A > Hong GilDong
-
Q > What is the name of your organizational unit? 당신의 부서의 이름은 무엇인가요?
-
A > NooGooNaa
-
Q > What is the name of your organization? 당신의 조직 이름은 무엇인가요?
-
A > NooGooNaa
-
Q > What is the name of your City or Locality? 당신의 도시 이름은 무엇인가요?
-
A > Gyeyang-gu
-
Q > What is the name of your State or Province? 당신의 지역 이름은 무엇인가요?
-
A > Incheon-si
-
Q > What is the two-letter country code for this unit? 당신의 국가 코드를 입력해 주세요
-
A > 82
그럼 key.jks라는 파일이 C:\Users\USER_NAME 디렉토리에 존재하는 것을 확인할 수 있습니다.
이렇게 Keystore를 만들게 되었습니다.
- 삽질 1
처음 Keytool을 사용하려고 하니 아래와 같은 오류가 발생하였습니다.
keytool : 'keytool' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시 도하십시오.
위치 줄:1 문자:1
+ keytool -genkey -v -keystore c:/Users/bhj28/key.jks -keyalg RSA -keys ...
+ ~~~~~~~
+ CategoryInfo : ObjectNotFound: (keytool:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
해당 오류는 JDK가 설치가 안되어 있어서 발생하는 오류로 JDK를 설치해 주면 해당오류가 해결 됩니다.
아래 링크를 참고하여 JDK를 설치해 줍니다.
그러면 아래 사진과 같이 정상적으로 실행이 되는것을 확인할 수 있습니다.
앱에서 Keystore를 참조할 수 있도록 설정하기
앱을 빌드할 때 앱이 Keystore를 참조해야하므로 우리는 안드로이드에 특정 명령어를 입력해야 합니다.
먼저 배포할 앱 프로젝트 폴더에 접근한 후 [android] 폴더에 [key.properties] 이라는 파일을 생성해 줍니다.
그 후 아래에 내용을 [key.properties]에 입력해 줍니다.
storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=C:\\Users\\User_Name\\key.jks
이 key.properties 파일은 개인적으로 보관하고 있어야 합니다.
공개된 저장소에 업로드 하면 안됩니다.
Gradle에서 서명 구성하기
Android에 Gradle에서도 해당 key.properties 파일에 접근할 수 있도록 설정해 줍니다.
[android] - [app] - [build.gradle] 로 들어가,
먼저 속성파일에서 keystore를 가져올 수 있도록 아래 코드를 입력해 주시길 바랍니다.
(주석을 읽으면서 입력하세요)
// build.gradle에서 해당 코드를 검색합니다.
android {
// 해당 코드를 추가해 줍니다.
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
// 검색 된 코드
android {
그리고 아래 코드 또한 입력해 주시가 바랍니다.
// build.gradle에서 해당 코드를 검색해 줍니다.
buildTypes {
// 해당 코드를 입력해주세요
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
// 검색된 코드
buildTypes {
이제 앱을 빌드할 때 자동으로 key 파일을 불러올 수 있습니다.
마무리
자 이번 포스팅에서는 앱에 디지털 서명을 하는 방법에 대해서 알아보았습니다.
혹시 잘 안되는 부분이 있거나 포스트에 문제가 있다면 댓글을 남겨주시기 바랍니다.
감사합니다.
'프로그래밍 언어 > Flutter' 카테고리의 다른 글
Flutter로 개발한 앱 플레이스토어(Play Store)에 배포하기 (6) - APK 빌드 및 설치하기 (0) | 2020.05.22 |
---|---|
Flutter로 개발한 앱 플레이스토어(Play Store)에 배포하기 (5) - App Bundle 빌드하기 (5) | 2020.05.21 |
Flutter로 개발한 앱 플레이스토어(Play Store)에 배포하기 (4) - 매니페스트 및 빌드 구성 검토하기 (0) | 2020.05.20 |
Flutter로 개발한 앱 플레이스토어(Play Store)에 배포하기 (3) - Proguard 사용하여 앱 난독화 및 압축하 (0) | 2020.05.19 |
Flutter로 개발한 앱 플레이스토어(Play Store)에 배포하기 (1) - 런처 아이콘 만들기 (0) | 2020.05.17 |
이 글을 공유하기