자동 보호 기능으로 무단 재배포를 방지하고 사용자에게 Google Play에서 앱을 다운로드하라는 메시지 표시하기

Google Play의 자동 보호 기능은 앱과 게임을 무단으로 재배포하고 불법으로 복제하는 행위로부터 보호하는 서비스입니다. 사용자가 알 수 없는 배포 채널에서 보호된 앱을 다운로드하면 Google Play에서 공식 앱을 다운로드하라는 메시지가 표시됩니다. 자동 보호 기능은 데이터 연결 없이도 앱에서 작동합니다. Play Console에서 클릭 한 번으로 사용 설정할 수 있습니다. 아울러 테스트하기 전에 개발자의 작업이 필요하지 않으며 백엔드 서버 통합도 필요하지 않습니다.

작동 방식

자동 보호 기능을 사용하면 앱에 다음 기능을 추가할 수 있습니다.

설치 프로그램 검사

자동 보호 기능은 앱이 열릴 때 런타임에 실행되는 Google Play 설치 프로그램 검사를 앱 코드에 추가할 수 있습니다. 설치 프로그램 검사를 통과하지 못하면 사용자에게 Google Play에서 앱을 다운로드하라는 메시지가 표시됩니다. 

이점: 이를 통해 더 많은 사용자가 Google Play에서 공식 앱 업데이트를 다운로드할 수 있습니다.

조작 방지

참고: 이 기능은 일부 Play 파트너에게만 제공됩니다.

자동 보호 기능은 앱 코드에 런타임 검사를 추가하여 수정을 감지하며, 고급 난독화 기술을 사용하여 검사가 삭제되거나 리버스 엔지니어링되는 것을 방지할 수 있습니다. 검사를 통과하지 못하면 사용자에게 Google Play에서 앱을 다운로드하라는 메시지가 표시되거나 앱이 실행되지 않습니다.

이점: 조작 방지 기능을 Google Play 설치 프로그램 검사와 함께 사용하면 공격자가 무단 수정, 리패키징, 재배포, 불법 복제를 통해 배포 또는 수익 창출 환경설정을 우회하지 못하도록 할 수 있습니다.

참고: 조작 방지 기능으로 모든 수정 및 재배포를 완전히 방지할 수 있는 것은 아닙니다. 다만 자동 보호로 인해 이러한 행위를 하는 것이 한층 어려워지고 비용도 증가하게 되어 이러한 행위가 성공할 가능성이 줄어들게 됩니다. Google Play에서는 새 버전에서 가장 강력한 최신 버전의 보호 기능이 자동으로 갖추어지도록 조작 방지 보호를 지속적으로 강화할 예정입니다.

익명 처리된 환경 및 성능 데이터와 같은 앱 원격 분석을 Google Play와 공유하면 조작 방지 기능의 복원력과 성능을 개선하는 데 도움이 됩니다. 자동 보호 설정 페이지(테스트 및 출시 > 앱 무결성으로 이동 후 자동 보호까지 아래로 스크롤)에서 'Google과 앱 원격 분석 공유'를 사용 중지하여 앱 원격 분석 공유를 선택 해제할 수 있습니다. Google 서비스 개발에 데이터가 사용되는 방식에 대해 자세히 알아보세요.

설정

아래 단계에서는 자동 보호를 사용하기 위해 수행해야 하는 작업을 설명합니다.

기본 요건

자동 보호 기능을 사용하려면 Google Play에서 수정된 APK를 만들고 개발자를 대신하여 서명해야 하므로 개발자는 다음과 같은 조치를 취해야 합니다.

다음 사항도 참고하세요.

  • 자동 보호 기능을 사용하려면 앱이 최소 API 수준 21 이상을 타겟팅해야 합니다.
  • 자동 보호 기능은 오프라인에서도 작동합니다. 하지만 기기의 Play 스토어 앱이 장시간 오프라인 상태인 경우, 설치 프로그램 검사를 주기적으로 실행하려면 데이터 연결이 필요합니다.
  • 자동 보호 기능을 사용하면 Play 라이선스 라이브러리를 사용할 필요가 없습니다.
  • 앱을 내부 앱 공유에 업로드할 때는 보호 기능이 적용되지 않습니다. 신뢰할 수 있는 팀 구성원에게만 내부 앱 공유 링크를 공유하고 보호되지 않은 버전은 외부에 공유하지 마세요.
  • 자동 보호 기능은 App Bundle의 코드 투명성과 호환되지 않습니다.

조작 방지를 위한 추가 기본 요건

참고: 이 기능은 일부 Play 파트너에게만 제공됩니다.

조작 방지를 사용하려면 앱이 다음을 충족해야 합니다.

  • 최소 API 수준 23 이상을 타겟팅해야 합니다. midSDKVersion 23 이상을 타겟팅하면 활성 Android 기기의 99% 이상에 도달하게 됩니다.
  • ABI(x86, x86_64, armeabi-v7a, arm64-v8a) 중 하나를 타겟팅합니다. 앱의 타겟팅된 ABI를 업데이트하려면 Gradle 설정을 업데이트합니다. 활성 Android 기기에서 사용하지 않는 다른 ABI는 앱의 가용성에 영향을 주지 않으면서 타겟팅에서 삭제될 수 있습니다.
1단계: 보호 기능 사용 설정하기

버전 준비 및 출시 1단계에 설명된 것과 같이 버전을 만듭니다.

버전 준비 및 출시2단계에 설명된 대로, 버전을 만들 때 보호 기능을 사용 설정할 수 있습니다. 또는 개발자가 의도한 방식대로 사용자가 앱과 게임을 경험하도록 도와주는 무결성 및 서명 서비스가 포함된 앱 무결성 페이지(테스트 및 출시 > 앱 무결성)에서 보호 기능을 사용 설정할 수도 있습니다.

버전을 준비할 때 무결성 보호 또는 무결성 보호 관리라고 표시된 버튼이 표시됩니다. 그런 다음 '자동 보호'에서 예, 사용 설정합니다를 클릭하여 무결성 보호를 사용 설정할 수 있습니다. 그러면 Google Play에서 무단 변경 및 배포 관련 악용을 막기 위해 버전에 서명하고 무결성 보호를 추가합니다. 이는 자동 보호가 사용 설정되었다는 의미입니다.

버전 준비를 완료하고 변경사항을 저장합니다.

2단계: 보호되는 앱 테스트하기

테스트 트랙을 사용하여 보호된 앱 버전을 테스트하고 사용자 환경이나 성능에 예상치 못한 영향을 미치지 않는지 확인하세요.

검토할 때 다음 작업을 포함하는 것이 좋습니다.

  • 게임 출시를 테스트하면서 실행 시 비정상 종료가 발생하거나 시작 시간에 속도가 느려지지 않는지 확인합니다.

테스트 프로세스 중에 문제가 발생하면 자동 보호 기능을 사용 중지할 수 있습니다. 하지만 보호되지 않은 버전을 공개 트랙 또는 프로덕션으로 게시하는 것은 권장하지 않습니다.

개별 버전에서 무결성 보호를 사용 중지하려면 다음 단계를 따르세요.

  1. 버전을 준비할 때 무결성 보호 관리를 클릭합니다.
  2. '자동 보호'에서 이전 보호 또는 이 버전에 보호 사용 중지를 선택합니다.
  3. 변경사항을 저장합니다. 변경사항이 이 버전에 적용됩니다. 다음번에 출시 버전을 업로드하면 이 버전에는 가장 강력한 최신 버전의 보호 기능이 다시 적용됩니다.
3단계: 앱을 프로덕션 트랙으로 게시하기

준비되면 Play Console에서 프로덕션 트랙으로 버전을 출시하여 선택한 국가의 모든 Google Play 사용자가 보호된 앱을 사용하도록 설정할 수 있습니다.

사용자가 방문할 때 표시되는 자동 보호 관련 메시지의 스토어 등록정보 맞춤설정하기

자동 보호 기능은 비공식적으로 앱을 받은 사용자에게 Google Play에서 앱을 다운로드하라는 메시지를 표시할 수 있습니다. 사용자가 메시지를 탭하면 스토어 등록정보로 리디렉션되며, 설치(또는 구매 또는 업데이트) 버튼을 탭하면 Play에서 앱을 다운로드할 수 있습니다. 그러면 앱이 사용자의 Play 라이브러리에 추가됩니다.

메시지를 탭하는 모든 방문자를 위해 앱 이름, 아이콘, 설명, 그래픽 저작물 등 스토어 등록정보 애셋을 맞춤설정할 수 있습니다. 방법은 다음과 같습니다.

  1. Play Console을 열고 앱 무결성 페이지(테스트 및 출시 > 앱 무결성)로 이동합니다.
  2. '자동 보호' 섹션으로 스크롤합니다.
  3. 설정을 클릭합니다.
  4. '스토어 등록정보 맞춤설정' 섹션으로 스크롤합니다.
  5. 등록정보 만들기를 클릭합니다.
  6. 맞춤 스토어 등록정보 만들기 페이지의 안내를 따르고 저장을 클릭합니다.

또는 맞춤 스토어 등록정보 페이지에서 직접 자동 보호 관련 메시지를 위한 맞춤 스토어 등록정보를 만들 수 있습니다.

  1. Play Console을 열고 맞춤 스토어 등록정보 페이지(사용자 늘리기 > 맞춤 스토어 등록정보)로 이동합니다.
  2. 등록정보 만들기를 클릭하고, 새 등록정보를 만들지 또는 기존 등록정보를 복제할지 선택한 후 다음을 클릭합니다.
  3. '등록정보 세부정보' 섹션에서 공유 대상 그룹으로 스크롤합니다.
  4. URL 사용을 선택하고 텍스트 상자에 'playintegrity'를 입력합니다.
  5. 다른 세부정보를 모두 입력하고 저장을 클릭합니다.

도움말: URL 매개변수 'playintegrity'는 무결성 딥 링크용으로 예약된 특수 키워드이므로 맞춤 스토어 등록정보를 설정할 때 그대로 정확하게 입력해야 합니다.

조작 방지를 위한 권장사항

참고: 이 기능은 일부 Play 파트너에게만 제공됩니다.

Google Play의 조작 방지를 최대한 활용하려면 다음 권장사항을 따르세요.

여러 조작 방지 솔루션을 함께 사용할 때 주의할 점

자동 보호 기능은 다른 런타임 조작 방지 솔루션과 호환되지 않을 수 있으며, 다른 솔루션과 함께 사용하려고 하면 사용자 문제가 발생하기도 합니다. 앱에서 다른 런타임 검사를 실행하는 경우 보호된 앱을 공개 트랙에 출시하기 전에 앱에 문제가 있는지 철저히 테스트해야 합니다.

보호되지 않은 앱 버전을 출시하지 않기

보호되지 않은 버전을 공개 트랙에 게시하거나 Google Play 외부의 채널을 통해 게시하는 경우 앱 보호가 더 이상 작동하지 않습니다. 앱의 무결성 보호를 유지하려면 앱의 보호된 버전만 공개 트랙 및 프로덕션 트랙에 게시해야 합니다.

보호되는 앱 테스트하기

Google Play는 내부 테스트, 비공개, 공개, 프로덕션 등 모든 트랙에서 자동으로 보호된 빌드를 제공합니다. 이러한 버전도 평소와 같이 철저히 테스트해야 합니다. 특히 다음 항목이 중요합니다.

  • 게임 출시를 테스트하면서 실행 시 비정상 종료가 발생하거나 시작 시간에 속도가 느려지지 않는지 확인합니다.
  • 광고, 로깅, 소셜 통합, 인증 또는 권한 처리와 같은 Android 관련 기능과 같이 네이티브 코드(C/C++)를 Java로 다시 호출(자체 코드 또는 서드 파티 라이브러리)하는 시점을 테스트합니다.

테스트 프로세스 중에 문제가 발생하면 이전 버전에서 이미 사용되었을 이전 버전의 자동 보호로 되돌리거나 자동 보호를 사용 중지할 수 있습니다. 하지만 보호되지 않은 버전을 공개 트랙 또는 프로덕션으로 게시하는 것은 권장하지 않습니다.

앱의 빌드를 내부 앱 공유에 직접 업로드하면 Google Play에서 보호 기능을 추가하지 않습니다. 이는 개발자가 내부 앱 공유를 사용하여 디버그 빌드 및 다른 유사한 빌드를 업로드할 수 있게 하기 위함입니다.

비정상 종료 모니터링하기

앱에 보호 기능이 적용된 결과로 비정상 종료 횟수가 증가할 수 있습니다. 이는 자동 보호가 의도한 대로 작동함을 의미할 가능성이 높습니다. 공격자가 앱을 수정하지 못할 경우 런타임 검사가 앱 실행을 중단시키며, 주로 앱이 비정상 종료됩니다.

Google Play에서 기인하지 않는 비정상 종료는 Android vitals 안정성 측정항목에 영향을 미치지 않습니다. Crashlytics와 같은 다른 도구를 사용하여 비정상 종료를 분석하고 있으며 설치 소스별로 필터링할 패키지 이름이 필요한 경우 Google Play 스토어의 패키지 이름은 'com.android.vending'입니다.

비정상 종료가 증가하는 상황에 대해 우려가 된다면 최대한 구체적인 세부정보를 Google에 신고해 주세요. 팀에서 조사하겠습니다. 비정상 종료가 보호 기능과 관련된 것으로 판단되면 Google에서 신고에 대한 답변을 제공합니다.

앱의 손상된 버전 신고하기

손상된 버전이란 앱이 수정되었거나 개발자가 Google Play 설치를 요구했지만 Google Play 외부에서 설치된 경우에도 여전히 작동하는 버전의 앱을 말합니다.

앱의 손상된 버전을 확인한 경우 Google에 신고해 주시기 바랍니다.

관련 콘텐츠

도움이 되었나요?

어떻게 하면 개선할 수 있을까요?

도움이 더 필요하신가요?

다음 단계를 시도해 보세요.

검색
검색어 지우기
검색 닫기
기본 메뉴
1943593417894272047
true
도움말 센터 검색
true
true
true
true
true
92637
false
false
false