본문 바로가기

Build Gradle

[Build Gradle] Android Signing

안녕하세요. 메로나입니다.

 

오늘은 Android Signing에 대해 공부하겠습니다.

 

Android Signing 이란?

애플리케이션의 무결성을 보장하고, 해당 애플리케이션이 신뢰할 수 있는 출처에서 왔음을 증명합니다. 서명은 개발자가 소유한 인증서를 사용하여 이루어지며, 이를 통해 APK가 수정되지 않았음을 확인할 수 있습니다.

 

  • 무결성 보장: 악의적인 행위에 의해 손상되지 않았음을 증명합니다.
  • 개발자 신뢰성 제공: 개발자 신원을 확인할 수 있습니다.
  • 업데이트 관리: 동일한 키로 서명된 APK만 기존 애플리케이션을 업데이트할 수 있습니다.

 

Android Signing 종류

1. Debug Signing

용도: 로컬 테스트 및 개발 단계에서 사용합니다.

특징: Android Studio에서 기본 제공하는 디버그 키로 서명됩니다.

제약: Google Play에 배포할 수 없습니다.

 

2. Release Signing

용도: 애플리케이션 배포할 수 있습니다.

특징: 개발자가 생성한 Release KeyStore로 서명할 수 있습니다.

제약: KeyStore와 비밀번호를 안전하게 관리해야합니다.

release signing key

 

3. Google Play App Signing

용도: Google Play에서 앱 배포 시 사용합니다.

특징: Google이 앱 서명 키를 관리하며, 개발자는 업로드 키로 서명합니다.

장점: KeyStore 손실 시 복구 가능합니다.

 

4. System Signing

용도: 시스템 앱 또는 OEM 관련 앱에서 사용합니다.

(OEM: 특정 제품이나 구성 요소를 설계하고 제조하여 다른 회사의 브랜드로 판매하도록 제공하는 기업을 의미)

특징: 기기 제조사나 시스템 이미지에 포함된 앱을 서명합니다.

장점: 시스템 권한을 요구하는 앱에 사용 가능합니다.

제약: 일반 개발자가 사용하기 어렵습니다.

 

5. Shared User ID Signing

용도: 동일한 Shared User ID를 사용하는 앱 간의 데이터 공유할 수 있습니다.

특징: 동일한 키로 서명된 앱만 데이터 공유 가능합니다.

제약: 서명 키 관리가 까다롭습니다.

 

참고문헌

https://cocoslime.github.io/blog/Android-App-Signing/

 

[Android] 안드로이드 앱 서명 (feat. Android App Bundle)

안드로이드 앱 서명 방식의 변화와 AAB에 대해 알아보자

cocoslime.github.io