반응형
디지털 서명 파일 생성하는 방법은 아래의 포스팅에서 자세히 확인 가능합니다.
2023.05.22 - [DevOps/그 외] - 디지털 서명 - 개념, 절차, 생성 방법 (디지털 서명 파일(keystore) 만들기)
디지털 서명 키 파일 생성하기
- 프로젝트 안드로이드 폴더 내 우클릭 - New File
- key.properties 이름의 파일 생성
- 생성한 파일에 아래의 코드 추가
storePassword = key.jks 만들 때 입력한 비밀번호 (keystore password)
keyPassword = key.jks 만들 때 입력한 비밀번호 (keystore password)
keyAlias=key
storeFile=key.jks 파일 위치
## USER_NAME은 OS에서 로그인한 사용자의 이름
# MacOS: /Users/USER_NAME/key.jks
# Windows: C:/Users/USER_NAME/key.jks
공유 금지 설정하기
키 파일은 절대 공개되어서는 안되는 파일이므로, 혹시나 공유 시 해당 파일을 업로드가 되지 않아야 합니다.
깃허브 같은 곳에 public 으로 올릴 경우를 대비하여 .gitignore 파일에 키 파일이 업로드 되지 않도록 설정해줍니다.
- 프로젝트 폴더 내에 .gitignore 파일 열기
- 가장 아래에 'key.properties' 입력 후 저장(컨트롤+S)
- 깃 데스크톱으로 커밋 목록을 확인하면 추가한 키 파일을 업로드 하지 않는 것을 볼 수 있습니다.
앱에 디지털 서명 포함하기 (build.gradle)
android - app - build.gradle 파일 열기
- 서명 확인절차
- 앱 실행 시 디버그 모드가 아닌 배포(release)의 형태를 가질 경우 디지털 서명 확인
- key.properties 파일의 정보를 객체화 하여 호출 (keystoreProperties)
- 서명 설정(signingConfigs)에서 키 파일의 정보 확인 (디지털 서명 정보가 맞는지)
- 디지털 서명 키 파일 확인 코드
- 빈 곳에 아래의 코드 붙여 넣기
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
- 앱 배포시 앱 ID 중복 방지
- 'applicationId' 수정
- android - defaultConfig 하위에 속해있는 applicationId 의 내용 수정
- 이는 앱 배포 시 다른 앱과의 중복을 막기 위해 편의상 개발자 계정 이름 입력하는 것
android {
// .. 코드 생략 ..
defaultConfig {
// applicationId "com.example.flutter_memo_app"
applicationId "com.beautystar0413.flutter_memo_app"
}
// .. 코드 생략 ..
}
- 디지털 서명 설정 코드 추가
- android 하위에 코드 추가
- key.properties에서 정의한 각각의 속성 값을 소프트 코딩으로 민감 정보 대체 입력
android {
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
}
- 릴리즈 빌드에 대한 자체 서명 구성 추가
- android - buildType 하위에 속해 있는 sigingConfig 의 내용 수정
- 디버그에서 릴리즈로 변경
android {
buildTypes {
release {
// signingConfig signingConfigs.debug
signingConfig signingConfigs.release
}
}
}
- 저장(컨트롤+S)
디지털 서명 확인
- 릴리즈 모드로 앱 실행
- 앱이 릴리즈모드로 실행될 때 위에서 진행한 디지털 서명을 확인
- 만약 디지털 서명 정보가 다르다면 에러 출력
flutter run --release
- 정상적인 디지털 서명 키 파일일 경우
- 디지털 서명 키 파일의 비밀번호를 임으로 변경하여 고의적으로 서명을 다르게 할 경우
- Error) keystore password was incorrect (키 파일의 비밀번호가 올바르지 않음)
참고
반응형