설치 프로그램 게시

이 문서에서는 게임 설치 프로그램을 사용하여 PC용 Google Play 게임즈에 게임을 게시하는 방법을 보여줍니다.

개발자 설치 흐름에서는 개발자가 제공하는 게임 설치 프로그램이 게임의 설치, 업데이트, 제거를 관리해야 합니다.

시작하기 전에

Google Play 게임즈 SDK를 게임에 통합합니다.

게임을 WAB 파일로 패키징

PC용 Google Play 게임즈를 사용하려면 게임의 설치 프로그램을 Windows App Bundle (WAB) 파일로 Google Play Console에 업로드해야 합니다. WAB 파일을 만들려면 다음 단계를 따르세요.

  1. Play 게시 도구를 다운로드합니다. Windows 명령줄 또는 PowerShell에서 이 도구를 실행할 수 있습니다.

  2. 이름을 지정하여 Play 게시 구성 파일을 만듭니다. 예를 들어 다음 형식의 play_publishing_config.xml가 있습니다.

    <?xml version="1.0" encoding="UTF-8"?>
    <play-publishing-config version="1.0">
      <application>
        <package-name>PACKAGE_NAME</package-name>
        <version-name>VERSION_NAME</version-name>
      </application>
      <installer requiresElevation=INSTALLER_REQUIRES_ELEVATION acceptsCommandLineArguments=ACCEPTS_COMMAND_LINE_ARGUMENTS>
        <path>INSTALLER_PATH</path>
        <installation-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>InstallLocation</value-name>
        </installation-path-registry-location>
      </installer>
      <launcher requiresElevation=LAUNCHER_REQUIRES_ELEVATION>
        <launch-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>InstallLocation</value-name>
        </launch-path-registry-location>
        <executable-invocation>
          <filename>RELATIVE_PATH_TO_LAUNCHER_EXE</filename>
          <arguments>LAUNCHER_ARGS_IF_ANY</arguments>
        </executable-invocation>
      </launcher>
      <uninstaller requiresElevation=UNINSTALLER_REQUIRES_ELEVATION>
        <uninstall-path-registry-location>
          <key-name>UNIQUE_REGISTRY_PATH</key-name>
          <value-name>UninstallString</value-name>
        </uninstall-path-registry-location>
      </uninstaller>
    </play-publishing-config>

    다음을 바꿉니다.

    • PACKAGE_NAME: 게임의 패키지 이름입니다. Google Play에서 게임과 연결될 고유 식별자입니다. 예를 들면 다음과 같습니다. com.yourcompany.yourgame 패키지 이름은 다음 규칙을 준수해야 합니다.
      • 애플리케이션 ID는 두 개 이상의 세그먼트(한 개 이상의 점)로 구성해야 합니다.
      • 각 세그먼트는 문자로 시작해야 합니다.
      • 모든 문자는 영숫자나 밑줄 ([a-zA-Z0-9_])이어야 합니다.
    • VERSION_NAME: 게임의 버전 문자열입니다. 임의의 문자열일 수 있지만 게임에 업로드된 모든 WAB에서 고유해야 합니다. 예: 1.0, 1.0.1-beta, 2025.11.24, v1.rc1

      • INSTALLER_REQUIRES_ELEVATION: 설치 프로세스를 완료하기 위해 설치 프로그램 실행 파일을 관리자로 실행해야 하는지 나타냅니다.

        • 'true': 실행 파일을 관리자로 실행합니다.
        • 'false': 실행 파일을 현재 사용자로 실행합니다.
      • ACCEPTS_COMMAND_LINE_ARGUMENTS: 설치 프로그램이 자동 재생 기능을 사용 설정하는 명령줄 인수를 수락할 수 있는지 여부를 나타내는 불리언 값입니다. 이 값은 선택사항이며 기본값은 false입니다. 자세한 내용은 자동 재생 사용 설정을 참고하세요.

      • INSTALLER_PATH: WAB 내 설치 프로그램 파일의 경로입니다. 이 경로는 Play 게시 구성의 상위 디렉터리에 대해 절대적이거나 상대적일 수 있습니다. 예를 들면 path\to\test\installer입니다. Authenticode 및 코드 서명을 사용하여 게임의 설치 프로그램 실행 파일에 서명해야 합니다.

      • UNIQUE_REGISTRY_PATH: Windows 레지스트리 키 경로 이 경로는 HKEY_LOCAL_MACHINE 또는 HKEY_CURRENT_USER와 같은 레지스트리 하이브를 기준으로 제공해야 합니다. 경로 문자열에 하이브 이름을 포함하지 마세요. 예를 들어 설치 프로그램이 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName에 쓰는 경우 Software\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName만 지정합니다. PC용 Google Play 게임즈는 여러 하이브에서 이 경로를 검색하여 실행 및 제거에 필요한 값을 찾습니다.

        INSTALLER_PATH에 지정된 실행 파일은 이러한 레지스트리 키를 만들어야 합니다. 설치가 완료되기 전에 installation-path-registry-location, launch-path-registry-location, uninstall-path-registry-location에 지정된 레지스트리 키 및 값 이름 쌍이 생성되어야 합니다. 이 예에서는 InstallLocationUninstallString을 사용하지만 설치 프로그램이 세 항목 모두에 해당하는 레지스트리 항목을 만드는 한 이러한 <value-name> 태그에 원하는 이름을 지정할 수 있습니다. PC용 Google Play 게임즈는 이러한 값을 사용하여 게임을 실행하고 제거합니다. 게임에서 런처를 사용하는 경우 이 경로는 런처의 설치 정보가 포함된 레지스트리 키를 가리켜야 하며 launch-path-registry-location로 지정된 레지스트리 항목의 값은 런처의 디렉터리를 가리켜야 합니다.

        이 경로는 사용자 컴퓨터에서 고유해야 합니다. 예를 들면 SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName입니다.

        게임 설치 프로그램이 64비트 Windows에서 실행되는 32비트 애플리케이션인 경우 Windows는 레지스트리 리디렉션을 사용하여 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node 아래에 레지스트리 항목을 작성합니다. 예를 들어 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName에 대한 쓰기는 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\YourUniqueName로 리디렉션됩니다.

      • LAUNCHER_REQUIRES_ELEVATION: 런처 또는 게임 실행 파일을 실행할 때마다 관리자로 실행해야 하는지 여부를 나타냅니다.

        • 'true': 실행 파일을 관리자로 실행합니다.
        • 'false': 실행 파일을 현재 사용자로 실행합니다.
      • RELATIVE_PATH_TO_LAUNCHER_EXE: 설치 디렉터리 내 런처 또는 게임 실행 파일의 경로입니다. 여기에는 런처 또는 게임 실행 파일 이름이 포함되어야 합니다. 예를 들어 런처 또는 게임 파일의 이름이 mygame.exe이고 {INSTALL_DIR}\Resources\mygame.exe에 있는 경우 Resources\mygame.exe를 입력해야 합니다.

      • LAUNCHER_ARGS_IF_ANY: 런처나 게임에 전달해야 하는 명령줄 인수입니다. 이 항목은 선택사항입니다.

        • 실행 파일과 연결된 인수가 여러 개인 경우 공백으로 구분해야 합니다.
        • 실행 파일에 필요한 경우 인수 앞에 '--' 또는 '-'를 추가해야 합니다.
      • UNINSTALLER_REQUIRES_ELEVATION: 제거 프로세스를 완료하기 위해 제거 프로그램 실행 파일을 관리자로 실행해야 하는지 나타냅니다.

        • 'true': 실행 파일을 관리자로 실행합니다.
        • 'false': 실행 파일을 현재 사용자로 실행합니다.

    Play 게시 구성 파일 예시

    게임 설치 프로그램 game_installer.exe, 게임의 런처 launcher.exe이 있는 MyGame이라는 게임을 고려해 보세요. 이 예시에서는 CDATA를 사용하는 방법도 보여줍니다. play_publishing_config.xml는 다음과 같이 표시됩니다.

    <?xml version="1.0" encoding="UTF-8"?>
    
    <play-publishing-config version="1.0">
      <application>
        <!-- The package name for your game. -->
        <package-name>com.mycompany.mygame</package-name>
        <!-- The game's version string. -->
        <version-name>1.0.0</version-name>
      </application>
      <!-- If requiresElevation is "true", installer runs as Administrator
           and a UAC prompt is displayed. This is required for system-wide
           installs (e.g., to Program Files) or writing to HKLM. -->
      <!-- If acceptsCommandLineArguments is "true", the installer must
           be able to accept command-line arguments to enable the auto-play
           feature. -->
      <installer requiresElevation="true" acceptsCommandLineArguments="true">
        <!-- Path to your installer executable. -->
        <path>game_installer.exe</path>
        <!-- The registry location where the installer writes the installation path. -->
        <installation-path-registry-location>
          <!-- Registry key path (typically under HKLM or HKCU).
               game_installer.exe MUST create this key. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- game_installer.exe, specified in <path>, creates the registry
               value called 'InstallLocation' within
               SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey
               by the time it exits. -->
          <value-name>InstallLocation</value-name>
        </installation-path-registry-location>
      </installer>
    
      <!-- If requiresElevation is "true", launcher runs as Administrator
           and a UAC prompt is displayed on every game launch. -->
      <launcher requiresElevation="true">
        <!-- Specifies the registry location where Google Play Games reads the installation path
             in order to launch the game. -->
        <launch-path-registry-location >
          <!-- Registry key path (typically under HKLM or HKCU) where
               the launch path can be found. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- Google Play Games reads the installation directory from this
               registry value, for example InstallLocation, to launch the game. -->
          <value-name>InstallLocation</value-name>
        </launch-path-registry-location>
        <executable-invocation>
          <!-- Game executable or launcher filename, relative to the
               directory path specified in the InstallLocation registry value. -->
          <filename>launcher.exe</filename>
          <!-- Optional arguments to pass to the executable.
               CDATA is used here to avoid issues with special characters
               like & or >. -->
          <arguments><![CDATA[arg1&arg2>arg3]]></arguments>
        </executable-invocation>
      </launcher>
    
      <!-- If requiresElevation is "true", uninstaller runs as
           Administrator and a UAC prompt is displayed for uninstall. -->
      <uninstaller requiresElevation="true">
        <!-- Registry key where Google Play Games finds the
             uninstallation command. -->
        <uninstall-path-registry-location>
          <!-- Registry key path (typically under HKLM or HKCU) where
               uninstall command can be found. -->
          <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey</key-name>
          <!-- game_installer.exe also creates the registry value, for example, 'UninstallString'
               within SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MySystemWideUniqueKey,
               containing the command Google Play Games executes to uninstall
               the game. -->
          <value-name>UninstallString</value-name>
        </uninstall-path-registry-location>
      </uninstaller>
    </play-publishing-config>
    
  3. Windows 명령줄 또는 Powershell에서 Play 게시 도구를 실행합니다.

    playpublishingtool.exe build-installer-bundle --input=PLAY_PUBLISHING_CONFIG_PATH --output=WAB_OUTPUT_PATH
    

    이름이 같은 기존 WAB 파일을 덮어쓰려면 --force 인수를 사용하세요.

    playpublishingtool.exe build-installer-bundle --input=PLAY_PUBLISHING_CONFIG_PATH --output=WAB_OUTPUT_PATH --force
    

    다음을 바꿉니다.

    • PLAY_PUBLISHING_CONFIG_PATH: Play 게시 구성의 경로입니다. 예를 들면 다음과 같습니다. path\to\play_publishing_config.xml
    • WAB_OUTPUT_PATH: WAB 파일의 경로입니다. 예를 들면 다음과 같습니다. path\to\output_bundle.wab

    Play 게시 도구 사용 방법

    현재 작업 디렉터리에 Play 게시 도구 바이너리 playpublishingtool.exe, Play 게시 구성 play_publishing_config.xml, 게임 설치 프로그램 game_installer.exe이 있다고 가정해 보겠습니다.

    현재 작업 디렉터리는 다음과 같습니다.

    .\
    ├── game_installer.exe
    ├── play_publishing_config.xml
    ├── playpublishingtool.exe
    

    동일한 디렉터리에 installer_bundle.wab이라는 이름의 WAB를 만들려면 명령어는 다음과 같습니다.

    playpublishingtool.exe build-installer-bundle --input=play_publishing_config.xml --output=installer_bundle.wab
    

    --force 인수를 사용하면 명령어는 다음과 같습니다.

    playpublishingtool.exe build-installer-bundle --input=play_publishing_config.xml --output=installer_bundle.wab --force
    

    성공하면 다음과 비슷한 출력이 표시됩니다.

    Successfully built the installer bundle at installer_bundle.wab
    

    폴더에서 WAB 파일을 찾습니다.

      .\
      ├── game_installer.exe
      ├── installer_bundle.wab
      ├── play_publishing_config.xml
      ├── playpublishingtool.exe
    

    PC 네이티브 게임 설치 시 자동 재생 사용 설정 (선택사항)

    PC용 Google Play Games를 사용하면 설치 프로세스가 완료된 후 게임을 자동으로 즉시 실행하는 '자동 플레이' 기능을 사용 설정할 수 있습니다. 이 기능은 플레이어를 PC용 Google Play 게임즈 생태계 내에서 완전히 인증된 게임으로 직접 전환하여 원활한 사용자 환경을 제공합니다.

    작동 방식

    기능을 사용 설정하면 PC용 Google Play 게임즈에서 명령줄 인수를 사용하여 서드 파티 (3P) 설치 프로그램 프로세스에 세션 토큰을 전달합니다. 그러면 설치 프로그램이 이 토큰을 추출하고 인증된 컨텍스트에서 게임 실행 파일을 실행하는 역할을 합니다.

    기본 요건

    이 기능을 사용하려면 서드 파티 설치 프로그램이 명령줄 인수를 처리할 수 있어야 합니다.

    구현 단계

    1. Play 게시 구성에서 자동 재생 사용 설정

      이 기능을 선택하려면 play_publishing_config.xml<installer> 요소에 acceptsCommandLineArguments 속성을 추가하세요.

      play_publishing_config.xml 콘텐츠의 발췌 예:

           <installer requiresElevation="true" acceptsCommandLineArguments="true">
              <path>path/to/installer.exe</path>
              <installation-path-registry-location>
                <key-name>SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\key</key-name>
                <value-name>InstallPath</value-name>
              </installation-path-registry-location>
           </installer>
      • 속성: acceptsCommandLineArguments
      • 유형: Boolean
      • 기본값: false
      • 동작: true로 설정하면 GPG가 설치 프로그램을 실행할 때 세션 토큰을 명령줄 인수에 추가합니다.
    2. 설치 프로그램에서 세션 토큰 처리

      설치 프로그램이 GPG 클라이언트에 의해 실행되면 세션 토큰을 명령줄 인수로 수신합니다.

      • 인수 형식: --g_session_token=<TOKEN>

      해야 할 일:

      • 추출: 설치 프로그램은 명령줄 인수를 파싱하여 토큰 문자열을 검색해야 합니다.
      • 전파: 설치 흐름에 보조 런처 또는 게임 프로세스 실행이 포함되는 경우 설치 프로그램은 SDK를 사용하는 최종 게임 프로세스에 세션 토큰을 안전하게 전달해야 합니다.
      • 실행: 제공된 세션 토큰을 사용하여 게임 실행 파일을 시작합니다. 이렇게 하면 인증된 GPG 컨텍스트 내에서 게임이 실행됩니다. 그렇지 않으면 InitializeSDK가 실패하고 플레이어가 게임을 다시 시작해야 합니다.
    3. 오류 처리 및 대체

      • 토큰 가져오기: 어떤 이유로든 GPG가 세션 토큰을 생성하거나 전달할 수 없는 경우 (예: 토큰 생성 실패) 설치 프로세스는 계속 진행됩니다. 하지만 설치 프로그램은 --g_session_token 인수 없이 실행됩니다.
      • 강력함: 설치 프로그램은 세션 토큰이 없는 시나리오를 처리하도록 설계해야 합니다. 이러한 경우 설치 프로그램은 표준 설치를 진행해야 합니다. InitializeSDK가 어차피 실패하므로 자동 게임 실행을 트리거해서는 안 됩니다.
      • 설치 프로그램 오류: 설치 프로그램의 안정성과 설치 프로그램이 시작하는 게임 실행 시퀀스의 오류 처리는 개발자의 책임입니다. GPG는 설치 프로그램이 실행된 후 설치 프로그램 내에서 발생하는 프로세스를 제어할 수 없습니다.

Play Console을 사용하여 게임 게시

게임의 WAB를 성공적으로 만든 후 Play Console에 업로드하고 설정과 요구사항을 관리합니다. 다음 단계에 따라 게임을 게시하세요.

PC용 Google Play 게임즈 폼 팩터 추가

이 단계는 게임을 처음 게시할 때만 필요합니다.

  1. Play Console의 왼쪽 메뉴에서 테스트 및 출시 > 설정 > 고급 설정을 선택합니다 (바로가기 링크).
  2. 폼 팩터 탭으로 이동하여 + 폼 팩터 추가 드롭다운에서 Google Play Games on PC를 추가합니다.

  3. 오른쪽의 PC용 Google Play 게임즈 폼 팩터에 해당하는 관리 버튼을 클릭합니다.

  4. Windows App Bundle 게임에 전용 트랙 사용 옵션을 선택합니다.

  5. 저장을 클릭한 다음 확인 대화상자에서 저장을 다시 클릭합니다.

관리형 게시 사용 설정하기

관리형 게시를 사용 설정하려면 다음 단계를 따르세요.

  1. 게시 개요 페이지의 관리형 게시 섹션에서 관리형 게시 켜기를 클릭합니다.
  2. 대화상자가 나타납니다. 트랙을 관리형 게시 사용으로 전환합니다.
  3. 저장을 클릭합니다.

WAB 파일 업로드

WAB 파일을 업로드하려면 다음 단계를 따르세요.

  1. Play Console의 왼쪽 메뉴에서 테스트 및 출시 > 고급 설정을 선택합니다 (바로가기).
  2. 고급 설정 페이지에서 폼 팩터 탭을 클릭합니다.
  3. 폼 팩터 탭에서 + 폼 팩터 추가를 클릭하고 PC용 Google Play 게임즈를 선택하여 추가합니다.
  4. PC용 Google Play 게임즈 섹션에서 관리를 클릭합니다.
  5. Windows App Bundle 게임에 전용 트랙 사용을 선택합니다.
  6. 저장을 클릭합니다.
  7. Play Console의 왼쪽 메뉴에서 테스트 및 출시 > 프로덕션 (바로가기)을 선택합니다.
  8. 프로덕션 페이지의 폼 팩터 드롭다운에서 PC용 Google Play 게임즈 (Windows)만을 선택합니다.
  9. Windows 앱 번들 탭에서 수정을 클릭하고 WAB 파일을 업로드합니다.

Windows PC 요구사항 구성

Windows PC 요구사항을 구성하려면 다음 단계를 따르세요.

  1. Play Console의 왼쪽 메뉴에서 사용자 늘리기 > 앱 정보 > 스토어 설정을 선택합니다 (바로가기 링크).
  2. PC 요구사항 섹션에서 오른쪽의 수정 버튼을 클릭합니다.
  3. 필드를 업데이트하고 저장을 클릭합니다.

인앱 구매 그래픽 구성

이 단계는 선택사항입니다. 인앱 구매 그래픽을 구성하려면 다음 단계를 따르세요.

  1. Play Console의 왼쪽 메뉴에서 사용자 늘리기 > 앱 정보 > 스토어 등록정보(바로가기)를 선택합니다.
  2. 등록정보 탭의 기본 스토어 등록정보 섹션에서 오른쪽에 있는 -> (화살표) 버튼을 클릭합니다. 그러면 기본 스토어 등록정보 페이지로 이동합니다.
  3. PC용 Google Play 게임즈 섹션으로 이동하여 PC용 Google Play 게임즈 (Windows) 인앱 구매 그래픽에 이미지를 업로드합니다.
  4. 저장을 클릭합니다.

검토를 위해 변경사항 전송

  1. Play Console의 왼쪽 메뉴에서 게시 개요를 선택합니다.
  2. 전송하여 검토받지 않은 변경사항 섹션에서 변경사항을 전송하여 검토받기를 클릭합니다.

검토팀에서 변경사항을 승인하면 게임이 Google Play에 표시됩니다.