안드로이드 앱 배포, APK와 AAB

jihyo·2022년 6월 13일
1

Android

목록 보기
10/17
post-thumbnail

앱을 만들었다면 스토어에 등록해 사용자가 이용할 수 있도록 배포를 해야한다. 그런데 우리가 Android Studio를 통해 앱을 완성시켰을 때 프로젝트 안의 여러 파일들을 보낼 수는 없다. 이를 하나로 묶어 배포해야 한다.

배포 파일 형식

안드로이드 앱의 배포 파일은 2가지 형식이 있다. APKAAB이다. APK는 전통적인 배포 파일 형식으로 컴파일된 코드와 리소스를 묶어서 키로 서명한 것이다. AAB는 2018년 구글 I/O에서 발표한 새로운 형식의 앱 배포 파일이다.

APK(Android Application Package)

Google Play에서 사용자가 다운로드하는 APK는 100MB 이하여야 한다. 일반적으로는 앱을 구성하는 코드와 파일을 저장하기에 충분하지만 고화질 그래픽이나 미디어 파일 등을 포함할 경우 용량 문제가 생긴다. 이런 앱을 실행할 때 개발자가 직접 추가 리소스를 호스팅하고 다운로드해야 했다.

AAB(Android App Bundle)

AAB는 APK의 용량 문제를 해결하기 위해 등장한 Google Play를 비롯한 기타 앱 스토어와 Android Studio, Gradle, Unity 등의 빌드 도구에서 지원하는 Android용 배포 형식이다.

APK와 AAB의 차이

  • AAB 형식은 앱 스토어에 올리면 사용자 기기에 맞게 최적화된 APK를 대신 만들어 준다.
    • 설치 파일은 똑같이 APK지만, 개발자가 직접 APK 파일을 만들지 않고 Google Play에서 최적화된 파일을 만들어 주는 것이다.
  • 설치하는 기기에 필요한 파일만 포함하기 때문에 앱의 크기가 줄어드는 효과가 있다.
    • ex) 다국어를 지원하는 앱은 언어별로 리소스를 포함하지만 한국어로 지정된 기기에서 설치한다면 나머지 언어 리소스는 필요없게 된다.

앱 서명

Android 배포 파일을 만들려면 Key를 만들어 앱에 서명해야 한다. 앱 서명 방법은 2가지가 있다.

1. 서명 키를 개발자가 직접 만들어 관리
2. Google Play에서 관리

1. 개발자가 서명 키를 관리

1. 개발자가 서명 키를 관리

출시용으로 앱을 빌드할 때 개발자가 만든 키로 앱을 서명하고 이를 Google Play에 등록하여 사용자에게 전달한다. (개발자가 만든 서명 키 1개로 앱을 관리)

문제점 : 개발자가 서명 키를 관리할 경우

만약 개발자기 키를 분실하거나 도용당하는 경우 대처할 방법이 없다.

  • 업데이트 하려면 이전 버전과 똑같은 키로 서명해야 되는데 앞서 말한 문제가 발생한다면 업데이트가 불가능하다. 새로운 키를 만들어 서명하면 완전히 새로운 앱으로 등록된다.

2. Google Play에서 관리

2. Google Play에서 관리

위의 문제점을 해결하고자 구글에서 Play 앱 서명 서비스를 만들었다.
키를 2개로 구분한다.

  • 업로드 키 : 기존의 서명 키로 개발자가 키를 만들어 앱을 서명하지만 Google Play에 앱을 등록할 때만 사용한다.
  • 앱 서명 키 : Google Play가 만드는 키로 업로드된 앱을 다시 자체적으로 만든 키로 서명해서 사용자에 전달한다. 이 키는 Google에거 관리하며 개발자가 직접 제어할 수 없다.

0개의 댓글