앱 배포

다음 섹션에서는 관리 Google Play 스토어의 앱 배포에 관한 유용한 정보를 제공합니다.

앱 설치

이 정책을 사용하면 Google Play 스토어의 Android 앱을 기기에 설치할 수 있습니다. 이 기능을 사용하려면 설치하려는 앱의 패키지 이름을 알아야 합니다. 앱의 패키지 이름을 찾는 방법에는 두 가지가 있습니다.

  1. 앱의 패키지 이름은 Google Play 스토어 페이지의 URL에 있습니다. 예를 들어 Chrome 앱 페이지의 URL은

    https://play.google.com/store/apps/details?id=com.android.chrome
    이고 패키지 이름은 com.android.chrome입니다.

  2. EMM 콘솔에 관리 Google Play iframe을 삽입하여 고객이 Google Play 스토어를 탐색하도록 할 수 있습니다. 고객이 iframe에서 앱을 선택하면 EMM 콘솔이 이벤트의 패키지 이름을 수신합니다.

그런 다음 기기 정책에 앱을 추가하면 됩니다.

"applications":[
   {
      "installType":"FORCE_INSTALLED",
      "packageName":"com.android.chrome",
   },
],

기기에 정책을 적용하면 앱이 기기에 설치되거나 기기의 관리 Google Play 스토어에 추가됩니다.

비공개 테스트용 앱 배포

Play Console에서 앱 개발자는 비공개 출시 (비공개 트랙)를 만들어 테스터 집합을 대상으로 앱의 출시 전 버전을 테스트할 수 있습니다. 이를 비공개 테스트라고 합니다. 비공개 트랙 배포를 지원하면 조직에서 서드 파티 앱은 물론 자체적으로 개발한 비공개 앱도 테스트할 수 있습니다.

Play Console에서 비공개 테스트를 설정할 때 앱 개발자는 최대 100개 조직(enterprises)을 타겟팅할 수 있습니다. Android Management API를 사용하여 엔터프라이즈를 타겟팅하는 비공개 트랙을 검색하고 정책을 사용하여 이러한 비공개 트랙을 기기에 배포할 수 있습니다.

비공개 테스트 대상 앱

비공개 테스트를 설정하기 전에 앱 개발자는 앱이 다음 요구사항을 충족하는지 확인해야 합니다.

  • 앱의 프로덕션 버전이 Google Play (비공개 앱의 경우 관리 Google Play)에 게시된 경우
  • Google Play Console에서는 앱의 고급 설정 페이지에 관리 Google Play가 사용 설정되어 있습니다.
  • 모든 비공개 버전이 버전 코드 요구사항을 충족합니다.

비공개 테스트에 기업 추가

비공개 테스트를 설정할 때 앱 개발자는 조직 ID를 추가하여 조직에 비공개 테스트에 대한 액세스 권한을 부여할 수 있습니다. 고객은 다음 안내에 따라 조직 ID를 찾을 수 있습니다.

  1. 관리자 계정을 사용하여 관리 Google Play에 로그인합니다.
  2. 관리자 설정을 클릭합니다.
  3. 조직 정보 상자에서 조직 ID 문자열을 복사하여 개발자에게 보냅니다.

비공개 앱의 경우 개발자는 앱의 고급 설정 페이지에 있는 관리 Google Play 탭에서 참여하는 각 기업의 조직 ID도 추가해야 합니다. 자세한 내용은 Play Console에서 비공개 앱 게시를 참고하세요.

사용자에게 비공개 트랙 배포

기업에서 특정 앱의 사용 가능한 트랙 목록을 가져오려면 enterprises.applications를 호출합니다. 응답에 포함된 appTrackInfo[] 목록에는 특정 앱의 다음이 포함됩니다.

  • trackId: 앱의 트랙 정보를 표시하는 Play Console 페이지 URL에 있는 releaseTrackId에서 가져온 트랙의 고유 식별자입니다.
  • trackAlias: 사람이 읽을 수 있는 트랙 이름으로, Play Console에서 수정할 수 있습니다.

사용자 기기에 비공개 트랙을 설치하려면 기기 정책에서 accessibleTrackIds를 지정합니다.

"applications":[
   {
      "installType":"AVAILABLE",
      "packageName":"com.google.android.gm",
      "accessibleTrackIds":[
          "123456",
          "789101"
       ]
   },
],

위 예와 같이 정책에 동일한 앱의 여러 트랙이 포함되어 있으면 정책은 버전 코드가 가장 높은 트랙을 설치합니다.

트랙 ID는 다음과 같은 특정 시나리오에서 enterprises.applications 호출에서 자동으로 삭제됩니다.

  • 트랙의 APK가 다른 트랙 또는 프로덕션으로 승격됩니다.
  • 프로덕션 버전이 트랙보다 높은 버전으로 업데이트됩니다.
  • 개발자가 트랙을 중지합니다.

관리 Google Play iframe

관리 Google Play iframe을 사용하면 관리 Google Play를 EMM 콘솔에 직접 삽입하여 고객에게 통합된 모바일 관리 환경을 제공할 수 있습니다.

Managed-play-iframe
그림 1. 관리 Google Play iframe

iframe에는 제목 표시줄과 펼칠 수 있는 사이드 메뉴가 있습니다. 사용자는 이 메뉴에서 여러 페이지로 이동할 수 있습니다.

  • 앱 검색: IT 관리자가 Google Play 앱을 검색 및 탐색하고, 앱 세부정보를 보고, 앱을 선택할 수 있습니다.
  • 비공개 앱: IT 관리자가 기업의 비공개 앱을 게시하고 관리할 수 있습니다.
  • 웹 앱: IT 관리자가 웹사이트 바로가기를 앱으로 게시하고 배포할 수 있습니다.
  • 앱 정리: IT 관리자가 사용자 기기의 Play 스토어 앱에서 앱이 정리되는 방식을 구성할 수 있습니다.

기능

이 섹션에서는 관리 Google Play iframe에서 사용할 수 있는 기능을 설명합니다. iframe을 삽입하고 이러한 기능을 구현하는 방법에 관한 자세한 내용은 콘솔에 iframe 추가를 참고하세요.


콘솔에 iframe 추가

1단계: 웹 토큰 생성

enterprises.webTokens.create를 호출하여 기업을 식별하는 웹 토큰을 생성합니다. 응답에는 토큰의 value가 포함됩니다.

  • parentFrameUrl를 iframe을 호스팅하는 상위 프레임의 URL로 설정합니다.
  • iframeFeature을 사용하여 iframe에서 사용 설정할 기능(PLAY_SEARCH, PRIVATE_APPS, WEB_APPS, STORE_BUILDER(앱 구성))을 지정합니다. iframeFeature가 설정되지 않은 경우 iframe은 기본적으로 모든 기능을 사용 설정합니다.

2단계: iframe 렌더링

다음은 관리 Google Play iframe을 렌더링하는 방법의 예입니다.

<script src="https://apis.google.com/js/api.js"></script>
<div id="container"></div>
<script>
  gapi.load('gapi.iframes', function() {
    var options = {
      'url': 'https://play.google.com/work/embedded/search?token=web_token&mode=SELECT',
      'where': document.getElementById('container'),
      'attributes': { style: 'width: 600px; height:1000px', scrolling: 'yes'}
    }

    var iframe = gapi.iframes.getContext().openChild(options);
  });
</script>

이 코드는 컨테이너 div 내부에 iframe을 생성합니다. iframe 태그에 적용할 속성은 앞서 언급한 것처럼 '속성' 옵션으로 설정할 수 있습니다.

URL 매개변수

아래 표에는 URL에 URL 매개변수로 추가할 수 있는 iframe에 사용할 수 있는 모든 매개변수가 나와 있습니다. 예를 들면 다음과 같습니다.

'url': 'https://play.google.com/work/embedded/search?token=web_token&mode=SELECT&showsearchbox=TRUE',
매개변수 페이지 필수 설명
token 해당 사항 없음 1단계에서 반환된 토큰
iframehomepage 해당 사항 없음 아니요 iframe이 렌더링될 때 표시되는 초기 페이지입니다. 가능한 값은 PLAY_SEARCH, WEB_APPS, PRIVATE_APPS, STORE_BUILDER (앱 분류)입니다. 지정하지 않으면 다음 우선순위에 따라 표시되는 페이지가 결정됩니다. 1. PLAY_SEARCH, 2. PRIVATE_APPS, 3. WEB_APPS, 4. STORE_BUILDER.
locale 해당 사항 없음 아니요 iframe의 콘텐츠를 현지화하는 데 사용되는 올바른 형식의 BCP 47 언어 태그 지정되지 않은 경우 기본값은 en_US입니다.
mode 앱 검색 아니요 SELECT: IT 관리자가 앱을 선택할 수 있습니다.
APPROVE (기본값): IT 관리자가 앱을 선택, 승인, 승인 취소할 수 있습니다. 이 모드는 지원 중단되었습니다. 대신 SELECT를 사용하세요. 승인 모드는 웹 토큰에서 PlaySearch.ApproveAppstrue로 설정된 경우에만 작동합니다.
showsearchbox 앱 검색 아니요 TRUE (기본값): 검색창을 표시하고 iframe 내에서 검색어를 시작합니다.
FALSE: 검색창이 표시되지 않습니다.
search 앱 검색 아니요 검색 문자열 지정하면 iframe에서 IT 관리자에게 지정된 문자열이 있는 검색결과를 확인하도록 지시합니다.

3단계: iframe 이벤트 처리

또한 통합의 일부로 다음 이벤트를 처리해야 합니다.

이벤트설명
onproductselect 사용자가 앱을 선택하거나 승인하면 다음을 포함하는 객체가 반환됩니다.
{
    "packageName": The package name of the app, e.g. "com.google.android.gm",
    "productId": The product ID of the app, e.g. "app:com.google.android.gm",
    "action": The type of action performed on the document. Possible values are:
    "approved", "unapproved" or "selected." If you implement the iframe in SELECT
    mode, the only possible value is "selected".
}
    
아래 샘플은 onproductselect를 수신 대기하는 방법을 보여줍니다.
iframe.register('onproductselect', function(event) {
  console.log(event);
}, gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER);


내 앱을 Google Play 스토어에 업로드

개발자 또는 고객이 Android 앱을 개발하는 경우 Google Play Console을 사용하여 Play 스토어에 앱을 업로드할 수 있습니다.

앱을 Play 스토어에서 공개적으로 제공하지 않으려면 Google Play Console을 사용하여 앱을 단일 엔터프라이즈로 제한하면 됩니다. 또 다른 옵션은 Google Play Custom App Publishing API를 사용하여 프로그래매틱 방식으로 비공개 앱을 게시하는 것입니다. 비공개 앱은 제한된 기업에서만 사용할 수 있습니다. 정책을 사용하여 계속 설치할 수 있지만 기업 외부의 사용자에게는 표시되지 않습니다.