앱 배포

아래에서 Managed 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 콘솔에 Managed 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)에 게시된 경우
  • Play Console에서는 앱의 가격 및 배포 페이지에서 고급 Managed Google Play 기능을 사용 설정할 수 있습니다.
  • 앱의 모든 비공개 버전이 버전 코드 요구사항을 충족합니다.

비공개 테스트에 기업 추가

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

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

비공개 앱의 경우 개발자는 Play Console의 가격 및 배포 페이지에서 참여하는 각 기업의 조직 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"
       ]
   },
],

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

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

  • 트랙의 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 N/A 지원됨 1단계에서 반환된 토큰
iframehomepage N/A No iframe이 렌더링될 때 표시되는 초기 페이지입니다. 가능한 값은 PLAY_SEARCH, WEB_APPS, PRIVATE_APPS, STORE_BUILDER (앱 구성)입니다. 지정하지 않으면 다음 우선순위에 따라 표시되는 페이지가 결정됩니다. 1. PLAY_SEARCH, 2. PRIVATE_APPS, 3. WEB_APPS, 4. STORE_BUILDER.
locale N/A No iframe의 콘텐츠를 현지화하는 데 사용되는 올바른 형식의 BCP 47 언어 태그입니다. 지정하지 않으면 기본값은 en_US입니다.
mode 앱 검색 No SELECT: IT 관리자가 앱을 선택할 수 있습니다.
APPROVE (기본값): IT 관리자가 앱을 선택, 승인, 승인 취소할 수 있습니다. 이 모드는 지원 중단되었으므로 대신 SELECT를 사용하세요. 승인 모드는 웹 토큰에서 PlaySearch.ApproveAppstrue로 설정된 경우에만 작동합니다.
showsearchbox 앱 검색 No TRUE (기본값): 검색창을 표시하고 iframe 내에서 검색어를 시작합니다.
FALSE: 검색창이 표시되지 않습니다.
search 앱 검색 No 검색 문자열. 지정하면 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를 사용하여 프로그래매틱 방식으로 비공개 앱을 게시하는 것입니다. 비공개 앱은 제한된 기업에서만 사용할 수 있습니다. 정책을 통해 계속 설치할 수 있지만 기업 외부의 사용자에게는 표시되지 않습니다.