플러터 실습/앱개발 환경설정부터 앱출시까지 빠르게 해보고 전체과정 이해하기

플러터 앱개발 환경설정부터 앱출시까지 빠르게 해보고 전체과정 이해하기 - 4.안드로이드 앱에 디지털 서명하기

플기차차 2023. 5. 30. 07:22

ㅁ 개요

 

O 프로그램 소개

 

 

- 이번 글은 이전글(플러터 앱개발 환경설정부터 앱출시까지 빠르게 해보고 전체과정 이해하기 - 3.안드로이드 앱 아이콘 및 이름 변경하기)에 이은 8번째 글로 안드로이드 앱에 디지털 서명하는 방법에 대하여 알아 보겠습니다.

 

 

 

O 완성된 프로그램 실행 화면

 

 

 - 본 포스팅의 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

 

 

1.  KeyStore 파일 만들기(개인키(서명키) 생성)

 

아래와 같은 명령으로 키길이가 2048인 RSA암호화 알고리즘으로 keystore 파일(앱 서명키, key_20230529_happywatch)을 생성합니다.

>keytool -genkey -v -keystore c:/Users/SEC/key_20230529_happywatch -keyalg RSA -keysize 2048 -validity 10000 -alias key
 

 

 

 

 

2. 앱이 KeyStore파일을 참조하도록 설정하기

 

아래와 같이 android > keystore 폴더를 만들어 주시고,

1) 그 아래에 위에서 만든 키 스토어 파일(key_20230529_happywatch)을 넣어 줍니다.

2) 그 다음 keystore.password 파일을 만들고, 여기에 key_20230529_happywatch 파일을 만들때 사용한 패스워드를 넣어 줍니다.

 

 

 

3) 프로젝트 폴더 > android 폴더로 이동 후

4) .gitignore 파일의 맨 아래에 '/keystore'를 넣어 줍니다.

프로젝트명(flutter_test_1) > android > .gitignore <-- 이 파일 수정

 

 

3. Gradle에서 서명 구성하기

 

 앱에 서명을 구성하기(넣기) 위하여 아래와 같이 코드를 넣어줍니다.

 


 

ㅁ 세부 내용

 

 

 

O 주요 내용

 

 
1.  KeyStore 파일 만들기(개인키(서명키) 생성)

KeyStore 파일은 개발자의 개인 키를 저장하고, 앱의 무결성(변조여부 확인)과 신원을 보장하기 위해 사용되는 중요한 파일입니다.

한번 만들고 나면 향후 해당앱의 업데이트 시 계속 이 파일을 사용해야 하므로  반드시 백업을 해두시기 바랍니다.

(예: A, B 2개의 앱을 배포시 A에 대한 KeyStore 파일과 B에 대한 KeyStore 파일을 각 각 만들어도 되고 KeyStore 하나로 같이 사용해도됩니다. 다만, A 앱과 B 앱은 각각 독립적인 앱으로 간주되므로 개별적인 KeyStore 파일을 생성하여 사용하는 것이 좋습니다. 단, A앱의 향후 기능 추가시 업데이트를 하는 경우 기존의 KeyStore를 사용해야 합니다.)

 

 

키스토어 파일을 만들기 위해서는 keytool.exe 툴이 필요합니다. 아래의 경로에서 확인할 수 있으며, 어디서든 사용하기 위해서 path(환경변수)를 아래와 같이 설정해 줍니다.
C:\Program Files\Android\Android Studio\jbr\bin
 
 
 
***환경변수 설정***
 
keytool.exe가 실행되지 않는 경우 패스를 설정해 주어야 하며, 실행되지 않는 분은 아래와 같이 따라하시기 바랍니다.
 
 
 
 
 

 

아래와 같이 keytool.exe를 사용할 수 있도록 환경변수를 설정해 줍니다.

안드로이드스튜디오가 설치된 경로에 존재

(C:\Program Files\Android\Android Studio\jbr\bin\keytool.exe)

 

아래와 같은 명령으로 키길이가 2048인 RSA암호화 알고리즘으로 keystore 파일(앱 서명키, key_20230529_happywatch)을 생성합니다.

>keytool -genkey -v -keystore c:/Users/SEC/key_20230529_happywatch -keyalg RSA -keysize 2048 -validity 10000 -alias key

(>keytool -genkey -v -keystore c:/Users/[윈도우사용자명]/key_20230529_happywatch -keyalg RSA -keysize 2048 -validity 10000 -alias key)

 

 

2. 앱이 KeyStore파일을 참조하도록 설정하기

 

아래와 같이 android > keystore 폴더를 만들어 주시고,

1) 그 아래에 위에서 만든 키 스토어 파일(key_20230529_happywatch)을 넣어 줍니다.

2) 그 다음 keystore.password 파일을 만들고, 여기시 key_20230529_happywatch 파일을 만들때 사용한 패스워드를 넣어 줍니다.

 

3) 프로젝트 폴더 > android 폴더로 이동 후

4) .gitignore 파일의 맨 아래에 '/keystore'를 넣어 줍니다.

프로젝트명(flutter_test_1) > android > .gitignore <-- 이 파일 수정

 

 

 

 

3. Gradle에서 서명 구성하기

 

 앱에 서명을 구성하기(넣기) 위하여 아래와 같이 코드를 넣어줍니다.

(위치 : 프로젝트명 > android > app > build.gradle 파일의 signingConfigs와 buildTypes 수정)

 

 


 

ㅁ 정리

 

O 우리가 배운 내용

 
 - 오늘은 안드로이드 앱에 디지털 서명하는 방법에 대하여 알아 보았습니다.
 
 
 
 - 오늘 우리가 배운 내용을 간략히 정리해 보면 아래와 같습니다.

 > 1.  KeyStore 파일 만들기(개인키(서명키) 생성)

>keytool -genkey -v -keystore c:/Users/SEC/key_20230529_happywatch -keyalg RSA -keysize 2048 -validity 10000 -alias key

 

 > 2. 앱이 KeyStore파일을 참조하도록 설정하기

android > keystore 폴더를 만들고

1) 그 아래에 키 스토어 파일(key_20230529_happywatch)을 넣고

2) keystore.password 파일을 만들고, 여기시 key_20230529_happywatch 파일을 만들때 사용한 패스워드를 넣어 줌

3) 프로젝트 폴더 > android 폴더로 이동 후

4) .gitignore 파일의 맨 아래에 '/keystore'를 넣어 줌

 > 3. Gradle에서 서명 구성하기

프로젝트명 > android > app > build.gradle 파일의 signingConfigs와 buildTypes 수정

 

 

 

오늘은 여기까지이며, 댓글하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.

위의 내용이 유익하셨다면, 댓글과 하트 부탁드립니다.

 

 

 

 

감사합니다.