Android App Bundle 정보
Android App Bundle(AAB)이란 무엇인가요?
2018년 출시된 Android App Bundle(AAB)은 Google Play 및 기타 앱 스토어와 Android 스튜디오, Bazel, Buck, Cocos Creator, Gradle, Unity, Unreal 등의 빌드 도구에서 지원하는 Android용 게시 형식입니다.
AAB와 APK의 차이점은 무엇인가요?
App Bundle은 게시 전용으로, Android 기기에 설치할 수 없습니다. Android 패키지(APK)는 Android의 설치 가능하고 실행 가능한 앱 형식입니다. App Bundle은 배포자가 APK로 처리해야 기기에 설치할 수 있습니다.
AAB는 Google Play에서만 사용할 수 있는 독점 형식인가요?
아니요. AAB는 독점 형식이 아닙니다. App Bundle은 오픈소스이므로 모든 앱 스토어에서 지원할 수 있습니다. 번들은 Google Play와 기타 일부 앱 스토어에서 지원합니다.
AAB를 만들면 다른 앱 스토어에 게시할 수 없나요?
아니요. 다른 앱 스토어에 게시할 수 있습니다. 앱을 빌드할 때 각 앱 스토어에서 필요한 게시 형식에 따라 AAB와 APK를 동시에 빌드할 수 있습니다.
AAB를 사용하려면 어느 정도의 작업이 필요한가요?
대부분의 앱에서 AAB를 빌드하는 데는 APK를 빌드할 때와 비슷한 작업이 필요합니다. 빌드 시간에 APK 대신 AAB를 선택하기만 하면 되기 때문입니다. 일부 앱에서는 AAB를 최대한 활용하려면 약간의 변경이 필요할 수 있습니다.
이미 AAB를 사용하는 개발자가 있나요?
예. 100만 개가 넘는 앱과 게임이 App Bundle을 사용하여 Google Play에 프로덕션 버전을 게시하고 있습니다. 여기에는 대다수의 인기 앱이 포함되며 활성 설치 수는 수십억 건에 달합니다. Google Play를 사용하여 앱을 설치하고 있다면 기기에 있는 앱 대다수가 App Bundle로 게시된 것입니다.
AAB를 사용하면 사용자가 앱을 '사이드로드'하지 못하나요?
아니요. AAB를 사용해도 사용자는 모든 소스에서 APK를 설치할 수 있습니다. AAB는 게시 형식일 뿐이므로 Android 플랫폼의 작동 방식이 변경되지는 않습니다.
개발자가 AAB를 사용하여 최적화된 APK를 제공하는 경우 이러한 APK를 공유하는 사용자에게 문제가 발생할 수 있나요?
앱의 게시 형식이 APK이든 AAB든 상관없이 Android에서는 APK를 한 기기에서 다른 기기로 직접 전송할 수 없는 사례가 항상 드물게 있었습니다. 특히 APK가 기기(예: 특정 칩 아키텍처)에 최적화된 경우 대상 기기가 원래 기기의 속성과 일치하지 않으면 이러한 APK를 다른 기기로 직접 전송하면 문제가 발생할 수 있습니다. 이러한 상황에서는 대상 기기에 적합한 APK나 APK 세트를 설치해야 합니다.
여러 앱 스토어에 게시할 수 있나요?
예. AAB 사용 여부와 관계없이 여러 앱 스토어에 게시할 수 있습니다. AAB를 지원하지 않는 다른 앱 스토어나 웹사이트에 APK를 게시하는 동시에 AAB를 지원하는 Google Play와 다른 앱 스토어에 AAB를 게시할 수 있습니다.
AAB 요구사항은 관리 Google Play에 게시된 비공개 앱에도 적용되나요?
아니요. 관리 Google Play에 게시된 비공개 앱은 APK 또는 AAB 둘 중 하나로 게시할 수 있습니다. 새로운 비공개 앱을 만들 때 자체 서명 비공개 APK를 게시하려면 앱 서명 키 변경을 선택하고 Play 앱 서명을 선택 해제하면 됩니다.
Play 앱 서명 정보
Play 앱 서명이란 무엇인가요?
Android의 모든 APK는 앱 서명 키를 사용하여 암호화 방식으로 서명되어야 설치될 수 있습니다. Android 플랫폼은 모든 앱 업데이트가 기기에 설치된 앱과 일치하는지 확인하는 데 이 키를 사용하여 초기 설치 후 각 앱 업데이트가 같은 키 홀더에서 제공되도록 합니다. 이렇게 하면 악성 앱 업데이트의 위험이 줄어듭니다. 2017년 출시된 Play 앱 서명은 Play에서 배포되는 앱의 Play 개발자 앱 서명 키를 보호하고 관리하는 Google Play의 키 관리 서비스입니다. 또한 Play 앱 서명은 업로드된 AAB에서 Play가 생성한 APK에서 서명 작업을 실행합니다. 신규 앱에서 AAB를 사용하려면 Play 앱 서명이 필요합니다.
Google에서 Play 앱 서명을 출시한 이유는 무엇인가요?
수년 동안 앱 서명 키는 Play 개발자에게 어려운 문제였습니다. 키를 분실하면 더 이상 사용자에게 앱 업데이트를 전송할 수 없고 키가 손상되면 사용자가 악성 업데이트의 위험에 놓이게 됩니다. 소프트웨어 배포에서 배포 채널은 배포하는 소프트웨어의 키를 저장하고 관리하는 것이 일반적입니다. 이러한 위험을 완화하기 때문입니다. Play 앱 서명은 Play 배포 키가 분실되는 위험을 없애고 키 손상 후 Play 사용자를 보호하고 개발자에게 Google의 지속적인 보안 투자의 혜택을 제공하려고 2017년 출시되었습니다.
Google에서는 어떻게 Play 앱 서명의 보안을 보장하나요?
Google은 Google의 자체 키를 보호하는 데 사용되는 것과 동일한 업계 최고의 안전한 인프라로 개발자 키를 보호합니다. 모든 작업에 적용되는 엄격한 ACL과 조작 방지 감사 추적 기능을 통해 잠긴 전용 키 관리 서버에 키를 암호화하여 저장합니다. Google의 클라우드 보안 작업과 권장사항은 온라인에서 자세히 알아볼 수 있습니다.
Play에서 내 앱에 사용하는 앱 서명 키를 선택할 수 있나요?
예. 새 앱을 만들 때 Google에서 대신 앱 서명 키를 생성하여 저장하도록 하거나 자체 앱 서명 키를 선택하여 사본을 업로드할 수 있습니다.
Play 및 다른 앱 스토어에서 같은 앱 서명 키를 사용하고 싶습니다. 가능한가요?
앱 업데이트의 작동 방식을 고려한 후에 여러 앱 스토어에서 같은 서명 키를 사용하기로 했다면 여전히 가능합니다. 이렇게 하면 각 앱 스토어에서는 앱의 교차 스토어 앱 업데이트를 실행할 수 있습니다. 다음 두 가지 옵션이 있습니다.
- 로컬에서 키를 생성하여 그 사본을 Play에 업로드할 수 있습니다. 이렇게 하면 다른 앱 스토어용 앱을 빌드할 때 Google Play에서 사용하는 같은 키를 사용할 수 있습니다.
- Google에서 생성한 키를 Play 앱 서명에 사용한 후 Google에서 생성한 키로 서명된 배포 APK를 Play Console에서 다운로드하여 이러한 APK를 다른 앱 스토어나 웹사이트에서 배포하는 데 사용할 수 있습니다.
앱 서명 키 사본을 제공하지 않고 2021년 8월 이전에 만들어진 앱에 Play 앱 서명을 사용할 수 있나요?
예. Play 앱 서명은 2021년 8월 이전에 만들어진 앱의 '키 업그레이드' 옵션을 지원합니다. 이 옵션을 사용하면 앱에서 새 앱 서명 키로 Play 앱 서명을 사용할 수 있습니다. 그러나 이 옵션을 사용하려면 업그레이드 실행 후 각 출시에 두 가지를 업로드해야 합니다. App Bundle과 이전 앱 서명 키로 서명된 기존 APK입니다. Play에서는 AAB를 사용하여 신규 설치와 업데이트를 위해 업그레이드된 키로 서명된 APK를 생성합니다. 동시에 Play에서는 앱을 이미 설치한 사용자의 앱 업데이트를 위해 기존 APK를 사용합니다. 시간 경과에 따라 기존 설치는 업그레이드된 키로 이전됩니다(예: 사용자가 새 휴대기기로 이동할 때).
2021년 8월 이전에 만들어진 앱과 2021년 8월 이후에 만들어진 앱에 같은 앱 서명 키를 사용하는 방법이 있나요?
일반적으로 여러 앱에 같은 앱 서명 키를 사용하지 않는 것이 좋습니다. 각 앱에 고유한 키를 사용하는 것이 더 안전합니다. 그러나 여러 앱에 같은 앱 서명 키를 사용해야 한다면 다음과 같은 경우 가능합니다. Play 앱 서명을 구성할 때 기존 앱 서명 키의 사본을 업로드할 수 있습니다. 또는 기존 앱 서명 키를 공유하지 않으려면 2021년 8월 이전 앱에 향후 예정된 '키 업그레이드' 옵션을 사용하여 Play 앱 서명을 사용할 수도 있습니다. 이렇게 하면 2021년 8월 이전 앱과 2021년 8월 이후 앱에서 모두 같은 새 키를 사용할 수 있습니다.
Play 앱 서명에서 사용하는 앱 서명 키를 변경할 수 있나요?
예. 앱은 Play Console에서 키 업그레이드를 요청하여 키를 변경할 수 있습니다.
Google Play에서 내 코드를 예기치 않게 변경하지 않았는지 확인하려면 어떻게 해야 하나요?
언제든지 Google Play와 Play Console의 App Bundle 탐색기에서 아티팩트를 다운로드하고 검사할 수 있습니다. 또한 곧 Play Developer API를 통해 출시 트랙에 커밋하기 전에 APK를 확인할 수 있습니다. App Bundle의 코드 투명성이라는 선택적 기능을 사용할 수도 있습니다. 코드 투명성을 사용하면 개발자와 최종 사용자가 제공되는 코드를 고려하여 Google Play와 같은 앱 스토어를 보유할 수 있습니다.
App Bundle의 코드 투명성은 어떻게 작동하나요?
코드 투명성은 제공되는 코드를 고려하여 앱을 배포하는 앱 스토어를 보유할 수 있는 선택적 기능입니다. 코드 투명성을 사용하려면 빌드 시간에 앱에 코드를 나타내는 코드 투명성 파일(특히 앱 코드의 해시가 포함된 파일)을 생성합니다. 개발자만 보유하는 자체 비공개 코드 투명성 키로 서명합니다. 코드 투명성 키는 Google에 제공하지 않아도 됩니다. 그런 다음 기기에서 설치된 APK를 검사하고 서명한 코드 투명성 파일이 여전히 APK의 코드와 일치하는지 확인할 수 있습니다. 이렇게 하면 APK 자체가 배포 중에 다시 서명되더라도 코드 투명성으로 확인된 코드가 수정되지 않습니다. 불일치가 있으면 코드가 배포 중에 변경되었다는 증거입니다. 코드 투명성은 APK 서명을 대체하지 않고 Android 플랫폼의 일부도 아닙니다.
Google Play에 대규모 앱과 게임 게시
AAB를 사용할 때 Google Play 앱 크기 제한은 어떻게 되나요?
AAB에서 생성된 기본 모듈의 최대 압축 다운로드 크기는 200MB입니다. 즉, Google Play는 먼저 기본 모듈을 생성하고 그 다음에 AAB의 추가 기능 모듈 또는 애셋 팩을 생성합니다. 다음으로 Google Play는 개별 기기에서 수신하는 최대 누적 총 압축 다운로드 크기가 4GB를 넘지 않는지 확인합니다.
Google Play에서는 AAB의 확장 파일(OBB)을 지원하나요?
아니요. Google Play에서는 AAB의 확장 파일을 지원하지 않습니다. 확장 파일(OBB)은 APK를 사용하여 대규모 앱과 게임을 게시하기 위한 기존 Google Play 전용 솔루션입니다. 200MB보다 큰 AAB의 경우 Google 및 서드 파티 대안이 있습니다.
200MB보다 큰 앱이나 게임을 Google Play에 게시하려면 어떻게 해야 하나요?
AAB를 사용하는 대규모 앱과 게임은 Play Asset Delivery나 Play Feature Delivery와 같은 Play 전송 서비스를 사용하여 200MB 크기 제한을 초과하거나 서드 파티 콘텐츠 전송 네트워크를 사용할 수 있습니다.
Play Asset Delivery는 확장 파일(OBB)에 비해 어떤 이점이 있나요?
Google Play에서 APK는 사용자에게 추가 리소스를 제공하기 위해 별도의 확장 파일(OBB)이 필요했습니다. 그러나 OBB는 서명되지 않고 앱의 외부 저장소에 저장되므로 그렇게 안전하지 않습니다. Play Asset Delivery(PAD)를 사용하면 Play 스토어에 단일 App Bundle로 전체 게임을 게시하여 200MB보다 큰 게임이 OBB를 대체할 수 있습니다. 더 원활한 게시 프로세스와 유연한 전송 모드를 제공하는 것 외에도 PAD를 사용하면 업데이트에 기기 저장용량이 더 적게 필요합니다. 따라서 설치율이 더 높아질 수 있습니다. 마지막으로 ASTC가 이제 최대 80%의 기기에서 지원되므로 PAD의 텍스처 압축 형식 타겟팅 기능을 사용하여 ASTC를 지원하는 기기에 ASTC를 제공할 수 있습니다. 가장 광범위한 기기를 타겟팅하면서 사용 가능한 하드웨어와 기기 저장용량을 효율적으로 사용할 수 있습니다.
AAB로 잠금 해제된 Google Play 전송 기능
Play에서 AAB를 사용하는 개발자에게 제공하는 새로운 기능의 예는 무엇인가요?
Google Play와 같은 앱 스토어에서는 AAB를 설치 가능한 APK로 처리합니다. APK를 담당하면 개발자와 사용자에게 혜택이 돌아가는 새로운 기능과 서비스를 제공할 수 있습니다. Play는 이미 개발자가 널리 사용하고 높이 평가하는 서비스를 제공하고 있습니다. Play Feature Delivery와 Play Asset Delivery를 예로 들 수 있습니다.
Play Feature Delivery란 무엇인가요?
App Bundle의 기능 중 하나는 앱을 '기능 모듈'이라는 여러 모듈로 분리할 수 있다는 것입니다. 그런 다음 이러한 모듈은 다른 시간에 사용자와 기기에 동적으로 전송될 수 있습니다. 모든 항목을 설치 시간에 한 파일로 전송해야 했던 이전과는 다릅니다. Play Feature Delivery를 사용하면 설치 시간이나 조건부, 주문형 전송 모드를 사용하여 어떤 기기에 언제 어떤 기능 모듈을 전송할지 맞춤설정할 수 있습니다. 이를 통해 앱 크기를 줄여 설치 수를 늘리고 앱 환경을 맞춤설정할 수 있습니다. 예를 들어 고객 지원과 같은 거의 사용되지 않는 기능을 설치 시간이 아니라 기능이 필요한 사용자에게 주문형으로 전송하여 모든 사용자의 초기 설치 크기를 줄일 수 있습니다. 또는 고급형 기기에 완전한 앱 환경을 제공하면서 데이터 및 기기 저장용량 제약이 있는 보급형 기기에 선택적인 주문형 기능이 적용된 더 작은 앱 환경을 제공할 수 있습니다.
Play Asset Delivery란 무엇인가요?
Play Asset Delivery를 사용하면 게임 개발자가 최적의 시간에 대용량 애셋을 동적으로 전송하여 사용자 환경을 개선하고 사용자 대기 시간을 줄일 수 있습니다. Play Asset Delivery를 사용하는 게임도 텍스처 압축 형식 타겟팅을 사용할 수 있으므로 사용자는 공간이나 대역폭을 낭비하지 않고 기기에 적합한 애셋만 얻습니다.
이러한 Play 전송 기능을 다른 앱 스토어에서 사용할 수 있나요?
아니요. Play Feature Delivery와 Play Asset Delivery에는 Google Play 스토어와 직접 상호작용하는 앱과 게임이 포함됩니다. 이러한 선택적 서비스를 통해 Play가 앱 스토어로서 차별화되고 Play 개발자와 사용자에게 가치와 유용성을 추가로 제공할 수 있습니다. App Bundle과 APK를 사용하는 다른 앱 스토어에서는 자체 앱 스토어 서비스를 개발자에게 제공합니다.