> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Game Development Kit(GDK) 릴리스 노트

> Microsoft Game Development Kit(GDK)의 호환성이 손상되는 변경 사항, 알림, 버그 수정 및 알려진 문제를 설명합니다.

> [tab] GDK 2610
>
> ## 2026년 10월 Microsoft Game Development Kit(GDK) 릴리스 노트
>
> ## 소개
>
> 2026년 10월 Microsoft Game Development Kit with XBOX Extensions(GDKX) 및 공개 GDK 릴리스를 소개합니다. GDKX를 사용하면 *공유 코드베이스를 사용하여* Windows 11 PC, Windows 10 PC, XBOX One 및 XBOX Series X|S 콘솔에서 출시하도록 인증 및 승인받을 수 있는 게임을 개발할 수 있습니다. GDK를 사용하면 Windows 11 PC 및 Windows 10 PC에서 출시하도록 인증 및 승인받을 수 있는 게임을 개발할 수 있습니다.
>
> ## GDKX
>
> > * 2026년 10월 GDKX는 2019년 11월 이후의 GDKX와 함께 나란히 설치할 수 있습니다.
> > * GDKX 릴리스는 [https://aka.ms/gdkdl](https://aka.ms/gdkdl)에서 다운로드할 수 있습니다.
> > * 모든 GDKX 릴리스의 릴리스 노트는 [https://aka.ms/gdkreleasenotes](https://aka.ms/gdkreleasenotes)에 있습니다.
>
> ## GDK
>
> > * GDK 릴리스를 다운로드하고 해당 릴리스 노트를 보려면 [https://aka.ms/gdk-winget](https://aka.ms/gdk-winget)으로 이동하세요.
>
> ### 이 문서 정보
>
> 이 문서는 다음 섹션으로 구성되어 있습니다.
>
> * [새로운 기능](#whats-new-in-the-october-2026-microsoft-game-development-kit)
>
> * **릴리스 노트:**
>   * [2026년 10월 GDK](#october-2026-gdk)
>
> * [설명서](#documentation)
>
> > **참고**: 릴리스 노트의 설명 뒤에는 \[12345678]과 같은 번호가 있습니다. GDKX 사용자의 경우 이 번호는 Microsoft가 해당 항목과 관련된 작업 및 기록을 추적하는 데 사용하는 내부 ID를 나타냅니다. 특정 릴리스 노트에 대해 질문이 있는 경우 이 번호는 개발자 계정 관리자에게 유용할 수 있습니다.
>
> ***
>
> ### 2026년 10월 Microsoft Game Development Kit의 새로운 기능
>
> > * GDKX와 GDK는 두 가지 유형으로 릴리스됩니다. 주 릴리스(기능 중심, 1년에 두 번)와 업데이트(수정 중심, 파트너의 필요에 따라 수시로)입니다.
> > * 전체 새로운 기능 섹션을 보려면 온라인 버전의 [새로운 기능](https://learn.microsoft.com/en-us/gaming/gdk/docs/gdk-dev/whatsnew/whats-new)을 참조하세요.
> > * 이전 버전의 릴리스 노트를 보려면 GDKX의 경우 GDK 포럼의 [릴리스 노트 게시물](https://aka.ms/gdkreleasenotes)을 참조하세요. GDKX 및 GDK의 경우 [2026년 4월 릴리스 노트](https://learn.microsoft.com/en-us/gaming/gdk/docs/gdk-dev/whatsnew/2604/release-notes-2604) 및 [2025년 10월 릴리스 노트](https://learn.microsoft.com/en-us/gaming/gdk/docs/gdk-dev/whatsnew/2510/release-notes-2510)를 참조하세요.
>
> ***
>
> ## 2026년 10월 GDK
>
> ### 알림
>
> #### Publisher Content
>
> > 이제 PC 및 콘솔 게임에서 게시자 호스팅 콘텐츠(Publisher-hosted Content)를 제공할 수 있습니다. 이는 플랫폼이 설치, 백그라운드 다운로드, 무결성 및 사용자 환경을 계속 관리하는 동안 게임 게시자가 자체 CDN에서 콘텐츠를 호스팅하고 업데이트할 수 있는 새로운 패키지 유형입니다.
> >
> > 자세한 내용은 [Publisher Content 패키지](https://learn.microsoft.com/gaming/gdk/docs/features/common/packaging/packaging-publisher-content?view=gdk-2610)를 참조하세요.
>
> #### GDK 레이아웃 사용 중단
>
> > 2025년 10월 및 2026년 4월 GDK 릴리스에는 간소화된 레이아웃과 레거시 레이아웃이 모두 포함되어 있습니다. 2026년 10월 GDK부터 설치 프로그램은 기본적으로 간소화된 레이아웃만 설치합니다. 레거시 레이아웃은 여전히 선택적 설치 항목으로 선택할 수 있지만, 사용되지 않으며 더 이상 권장되는 개발 경로가 아닙니다.
> >
> > 레거시 레이아웃은 더 이상 지원되지 않으며 2027년 4월 GDK 릴리스부터 설치 프로그램에서 제거됩니다.
>
> #### GDK 설치
>
> > GDK 설치에서 **Install legacy layout directories** 질문의 기본 선택이 **Yes**에서 **No**로 변경되었습니다.
> >
> > 호환성상의 이유로 레거시 레이아웃이 필요한 경우 선택을 **Yes**로 변경하거나, 자동 모드로 설치할 때 `/includelegacylayout` 스위치를 사용하세요.
> >
> > 레거시 레이아웃은 더 이상 지원되지 않으며 2027년 4월 GDK 릴리스부터 설치 프로그램에서 제거됩니다. \[64072906]
>
> 다음 스크린샷은 업데이트된 설치 화면을 보여 줍니다.
>
> ![No, only install the cross-platform layout (recommended)가 선택된 Install legacy layout directories를 보여 주는 GDK 설치 스크린샷.](https://mintcdn.com/microsoft-4404708b/fbwYDMD_yyzYxIh2/images/source-sync-3b3849316d8d8497a86d34bf84bb2f0d1f5caf17.png?fit=max\&auto=format\&n=fbwYDMD_yyzYxIh2\&q=85\&s=05662ed3a8358aba17b55f140e692b6f)
>
> ### 문제 수정
>
> #### XblPCSandbox
>
> > 일반 사용자 계정에서 권한을 상승할 때 `xblpcsandbox.exe`가 오류 코드 `0x80070520`(`ERROR_NO_SUCH_LOGON_SESSION`)과 함께 실패하는 문제를 수정했습니다. \[63442452]
>
> #### Visual Studio
>
> > **Visual Studio 동적 디버깅 및 RfPC(Run-from-PC)**
> >
> > 배포 모드로 Run-from-PC를 선택한 경우 동적 디버깅이 지원되지 않는 문제를 수정했습니다. 또한 이 변경으로 원격 디버거가 Visual Studio 2026으로 업그레이드되며, Visual Studio 2022와 100% 이전 버전과 호환됩니다.
> >
> > Visual Studio 2022에서 동적 디버깅을 사용하는 경우 **Debug > Options > Load Symbols In External Process**를 선택 취소해야 합니다. 그렇지 않으면 디버깅 세션이 중단됩니다. \[63663764]
>
> > GDK 프로젝트에서 사용되지 않는 **VS Extension Libraries** 속성 페이지를 제거했습니다. \[64151635]
>
> #### 개발자 도구
>
> > `XrfsSvc.exe /paths:del=PATH`가 지정된 경로 대신 전체 경로 목록을 삭제하는 문제를 수정했습니다. \[63925713]
>
> #### Gaming Services
>
> > `Microsoft GDK\<edition>\Windows\Redist\InstallGamingServicesBundle.ps1`에 확인되지 않은 변수 `%GAMING_SERVICES_VERSION%`가 표시되는 문제를 수정했습니다. 이제 이 파일에 올바른 Gaming Services 버전이 표시됩니다. \[63999992]
>
> ***
>
> ## 설명서
>
> > 2026년 10월 릴리스 GDKX의 오프라인 설명서는 GDKX 설치 프로그램에 의해 개발 PC에 설치됩니다. 설치 프로그램을 실행한 후 GDKX의 도움말 파일(`gdk.chm`)은 `C:\Program Files (x86)\Microsoft GDK\Documentation`에 있습니다.
> >
> > * 온라인 GDKX 및 GDK 설명서는 [Game Development Kit(GDK) 설명서](https://aka.ms/gdkonline)에 있습니다.

> [tab] GDK 2604
>
> ## 2026년 4월 Microsoft Game Development Kit(GDK) 릴리스 노트
>
> ## 소개
>
> 2026년 4월 Microsoft Game Development Kit with XBOX Extensions(GDKX) 및 공개 GDK 릴리스를 소개합니다. GDKX를 사용하면 *공유 코드베이스를 사용하여* Windows 11 PC, Windows 10 PC, XBOX One 및 XBOX Series X|S 콘솔에서 출시하도록 인증 및 승인받을 수 있는 게임을 개발할 수 있습니다. GDK를 사용하면 Windows 11 PC 및 Windows 10 PC에서 출시하도록 인증 및 승인받을 수 있는 게임을 개발할 수 있습니다.
>
> ## GDKX
>
> > * 2026년 4월 GDKX는 2019년 11월 이후의 GDKX와 함께 나란히 설치할 수 있습니다.
> > * GDKX 릴리스는 [https://aka.ms/gdkdl](https://aka.ms/gdkdl)에서 다운로드할 수 있습니다.
> > * 모든 GDKX 릴리스의 릴리스 노트는 [https://aka.ms/gdkreleasenotes](https://aka.ms/gdkreleasenotes)에 있습니다.
>
> ## GDK
>
> > * GDK 릴리스를 다운로드하고 해당 릴리스 노트를 보려면 [https://aka.ms/gdk-winget](https://aka.ms/gdk-winget) 으로 이동하세요.
>
> ### 이 문서 정보
>
> 이 문서는 다음 섹션으로 구성되어 있습니다.
>
> * [새로운 기능](#whats-new-in-the-april-2026-microsoft-game-development-kit)
>
> * **릴리스 노트:**
>   * [2026년 4월 GDK 업데이트 5](#april-2026-gdk-update-5)
>   * [2026년 4월 GDK 업데이트 4](#april-2026-gdk-update-4)
>   * [2026년 4월 GDK 업데이트 3](#april-2026-gdk-update-3)
>   * [2026년 4월 GDK 업데이트 2](#april-2026-gdk-update-2)
>   * [2026년 4월 GDK 업데이트 1](#april-2026-gdk-update-1)
>   * [2026년 4월 GDK](#april-2026-gdk)
>
> * [알려진 문제](#known-issues)
>
> * [설명서](#documentation)
>
> > **참고**: 릴리스 노트의 설명 뒤에는 \[12345678]과 같은 번호가 있습니다. GDKX 사용자의 경우 이 번호는 Microsoft가 해당 항목과 관련된 작업 및 기록을 추적하는 데 사용하는 내부 ID를 나타냅니다. 특정 릴리스 노트에 대해 질문이 있는 경우 이 번호는 개발자 계정 관리자에게 유용할 수 있습니다.
>
> ***
>
> ### 2026년 4월 Microsoft Game Development Kit의 새로운 기능
>
> > * GDKX와 GDK는 두 가지 유형으로 릴리스됩니다. 주 릴리스(기능 중심, 1년에 두 번)와 업데이트(수정 중심, 파트너의 필요에 따라 수시로)입니다.
> > * 전체 새로운 기능 섹션을 보려면 온라인 버전의 [새로운 기능](https://learn.microsoft.com/en-us/gaming/gdk/docs/gdk-dev/whatsnew/whats-new)을 참조하세요.
> > * 이전 버전의 릴리스 노트를 보려면 GDKX의 경우 GDK 포럼의 [릴리스 노트 게시물](https://aka.ms/gdkreleasenotes)을 참조하세요. GDKX 및 GDK의 경우 온라인 설명서의 [GDK 릴리스 노트](https://learn.microsoft.com/gaming/gdk/_content/gc/intro/release-notes/release-notes)에서 릴리스 노트를 볼 수 있습니다.
>
> ***
>
> ## 2026년 4월 GDK 업데이트 5
>
> ### 문제 수정
>
> #### PlayFab Party
>
> > PlayFab Party를 v1.10.26으로 업데이트했으며, 여기에는 다음 수정 사항이 포함됩니다.
> >
> > * `PartyEndpoint`를 삭제하는 동안 발생할 수 있는 충돌을 수정했습니다.
> > * `/MultiplayerServer/GetCognitiveServicesToken`의 비어 있거나, 형식이 잘못되었거나, 불완전한 응답 처리를 수정했습니다. 이제 Party는 충돌할 수 있는 대신 요청을 실패로 보고합니다.
> > * 원격 디바이스가 피어 투 피어 네트워크를 떠난 후 직접 연결 설정이 완료되는 경우 발생할 수 있는 충돌을 수정했습니다.
> >
> > \[63883777]
>
> #### 시스템
>
> > 큰 문자열이 `XSpeechSynthesizerCreateStreamFromText`에 전달될 때 `xgameruntime.dll!OnRuntimeDisconnected`에서 발생할 수 있는 타이틀 충돌을 수정했습니다. \[63860960]
>
> > 게임 저장 읽기 또는 쓰기 작업을 수행할 때 메모리 부족 상황의 처리를 개선했습니다. \[63996543]
>
> > 게임 저장 읽기 또는 쓰기 작업이 실패할 때 반환되는 오류 코드를 개선했습니다. \[63996543]
>
> ***
>
> ## 2026년 4월 GDK 업데이트 4
>
> ### 문제 수정
>
> #### Social Manager
>
> > GDK C Thunks DLL이 개인 정보 음소거 목록, 차단 목록 및 소셜 친구 요청 수 변경 처리기 함수를 내보내지 않아, 이를 호출하는 타이틀이 thunks DLL 대신 XSAPI 정적 라이브러리에 자동으로 링크되어 런타임이 일치하지 않게 되는 문제를 수정했습니다. \[63776691]
>
> > `PeoplehubService::DeserializeUser`가 각 `XblSocialManagerUser`의 중복 복사본 세 개를 보유하는 17KB 스택 프레임을 사용하여 Social Manager 소셜 그래프를 채우는 동안 스택 오버플로 충돌이 발생하는 문제를 수정했습니다. \[63776693]
>
> #### MSIXVC1(패키징)
>
> > `/msixvc2` 옵션 없이 `makepkg2 pack`을 실행해도 이제 다시 `/usepublisherkey` 옵션에 대한 오류 없이 작동합니다. 이 문제는 업데이트 3에서 발생했습니다. \[63529609]
>
> #### Wdapp
>
> > ARM64 및 x64 바이너리가 모두 있는 게임에서 `wdapp register`를 사용할 때 ARM64 컴퓨터에서 적절한 바이너리를 선택하지 않는 문제를 수정했습니다. \[63756866]
>
> #### PIX
>
> > PIX 타임라인에서 명명된 펜스의 화살표가 표시되지 않는 문제를 수정했습니다. \[63446892]
>
> ***
>
> ## 2026년 4월 GDK 업데이트 3
>
> ### 알림
>
> #### Publisher Content
>
> > 이제 PC 및 콘솔 게임에서 Publisher Content를 제공할 수 있습니다. 이는 플랫폼이 설치, 백그라운드 다운로드, 무결성 및 사용자 환경을 계속 관리하는 동안 게임 게시자가 자체 CDN에서 콘텐츠를 호스팅하고 업데이트할 수 있는 새로운 패키지 유형입니다.
> >
> > 개발자는 `MicrosoftGame.config`에서 이를 선언하고(기본 게임의 새 `PublisherContent` 요소 및 콘텐츠 패키지의 `PublisherContentBaseProduct` 필드를 통해), 해당하는 새 `makepkg` 매개 변수를 사용하여 패키지를 생성합니다.
> >
> > 게임은 새 `XPackageGetPackageKind()` API를 사용하여 기존 GDK API가 반환한 패키지의 종류를 식별할 수 있습니다. 이 API는 이제 `Game` 및 `Content` 외에 `XPackageKind::PublisherContent`도 보고합니다.
> > \[63082917]
>
> #### PlayFab Party
>
> > 라이브러리를 빌드하는 데 사용되는 Windows 플랫폼 도구 집합을 v142에서 v143으로 업그레이드했습니다. \[63294760]
>
> #### PIX
>
> > 프로그래밍 방식 타이밍 캡처를 변환하는 새 CLI 도구 `convertpevt.exe`를 사용할 수 있습니다. \[62666766]
>
> ### 문제 수정
>
> #### Clang/LLVM
>
> > clang/LLVM의 PGO 계측 구현을 지원하기 위해 XBOX Game OS 우산 라이브러리 `xgameplatform.lib`에 다음 Win32 API가 추가되었습니다. `FlushViewOfFile`, `VirtualUnlock`.
> >
> > clang/LLVM의 PGO를 사용하는 개발자는 성공적으로 링크하려면 clang/LLVM 구현에서 사용하는 일부 레거시 POSIX API에 대한 링크 별칭도 제공해야 합니다.
> >
> > ```cpp theme={null}
> > #pragma comment(linker, "/alternatename:fileno=_fileno")
> > #pragma comment(linker, "/alternatename:getpid=_getpid")
> > #pragma comment(linker, "/alternatename:strdup=_strdup")
> > ```
> >
> > \[62740693]
>
> #### PIX
>
> > 외부 셰이더 PDB의 대용량 캐시 로드가 더 안정적이고 일관되게 개선되었습니다. \[63014983]
>
> #### PIX DirectStorage
>
> > 타이밍 캡처에서 Element Details 보기 또는 Range Details 보기에서 탐색할 때 확대/축소가 잘못 동작하는 문제를 수정했습니다. \[62664029]
>
> > 어두운 모드에서 타이밍 캡처 타임라인의 DirectStorage 일괄 처리 시작을 나타내는 다이아몬드 표식을 알아보기 어려운 문제를 수정했습니다. \[62664035]
>
> #### XBOX Manager
>
> > Remote Control 탭에서 콘솔 또는 그룹의 비디오를 보는 동안 발생할 수 있는 XBOX Manager 충돌을 수정했습니다. \[62844048]
>
> #### PlayFab Game Saves
>
> > Steam Deck에서 저장 작업 중에 특정 진단 필드가 잘못 채워지는 사소한 원격 분석 보고 문제를 수정했습니다. \[62642608]
>
> > XBOX/GRTS 동작과 일치하도록 Steam Deck에서 충돌 패자 업로드 기능을 사용하지 않도록 설정했습니다. \[62642612]
>
> > PlayFab Game Saves가 누락된 레지스트리 키를 잘못 처리하여 초기화 오류가 발생하는 문제를 수정했습니다. \[62642607]
>
> #### Social Manager
>
> > 초기 People Hub 친구 목록 요청이 완료되지 않을 때 Social Manager 친구 목록이 간헐적으로 전체 세션 동안 비어 있는(`XblSocialManagerDoWork`가 `LocalUserAdded` 이벤트를 발생시키지 않음) 문제를 수정했습니다. 이제 초기 요청이 자동으로 복구되므로 게임을 다시 시작하지 않아도 소셜 그래프가 채워집니다. \[63202269]
>
> > 표시 이름에 하이픈이 포함된 타이틀을 플레이하는 친구에 대해 Social Manager가 잘못된 타이틀 이름과 리치 프레즌스 텍스트를 반환하는 문제를 수정했습니다. 이 문제는 프레즌스 문자열이 의도한 공백-하이픈-공백 구분 기호 대신 첫 번째 하이픈에서 분할되었기 때문에 발생했습니다. \[63202289]
>
> #### PlayFab Party
>
> > 타이틀에서 아직 오디오 출력을 구성하지 않은 경우 오디오 조작 음성 스트림이 버퍼를 생성하지 않는 문제를 수정했습니다. \[63294702]
>
> > 오디오 조작이 활성화된 상태에서 네트워크 간에 전환할 때 음성이 손실될 수 있는 문제를 수정했습니다. \[63294760]
>
> > 오디오 조작 캡처 스트림이 활성화된 경우 최종 음성 텍스트 변환 결과가 누락되는 문제를 수정했습니다. \[63294760]
>
> > Party가 종료를 완료하기 전에 프로세스 작업 큐가 삭제될 때 종료 중에 발생할 수 있는 충돌을 수정했습니다. \[63294760]
>
> > 지원하는 비동기 작업이 완료되기 전에 내부 HTTP 추적 개체가 삭제될 수 있는 use-after-free 문제를 수정했습니다. \[63294760]
>
> > WMI 레지스트리가 잘못 구성된 일부 PC 환경에서 PlayFab Party가 UDP 멀티플레이어 포트에 바인딩하지 못하는 버그를 수정했습니다. \[63251323]
>
> #### Publisher Content
>
> > 해제 중 무한 대기를 방지하기 위해 `XTaskQueue`의 내부 버그를 수정했습니다. \[63190218]
>
> #### MSIXVC2
>
> > 이제 Intelligent Delivery layout.xml에 동일한 이미지 파일을 사용하는 여러 기능이 있더라도 MSIXVC2 생성이 성공합니다. \[63117723]
>
> > 기존 빌드 파이프라인에 쉽게 적용할 수 있도록 MSIXVC2 pack 명령은 /maxencryptionfragments 및 /nogameos 옵션(MSIXVC2에는 영향을 주지 않음)을 정상적으로 무시합니다. \[63118134]
>
> > 이제 MSIXVC2 pack 명령은 원본 디렉터리에서 심볼 링크인 파일을 올바르게 포함합니다. 이전에는 이러한 파일을 길이가 0인 파일로 잘못 처리했습니다. \[63118309]
>
> ***
>
> ## 2026년 4월 GDK 업데이트 2
>
> ### 알림
>
> #### 개발자 도구
>
> > Visual Studio 2019용 Direct3D 12 Desktop Game (Classic) 템플릿에 더 이상 ARM64 구성이 없습니다. Visual Studio 2019를 사용한 ARM64 대상 지정은 더 이상 사용되지 않습니다. Visual Studio 2022 이상이 필요합니다. \[62468394]
>
> #### Markdown 파일 제공
>
> > GDK 설명서 Markdown 파일이 포함된 .zip 파일이 GDK 설치 프로그램에 추가되었습니다. 이전에는 이 .zip 파일을 [https://aka.ms/gdkdl](https://aka.ms/gdkdl)에서 별도로 다운로드해야만 사용할 수 있었습니다. \[62398050]
>
> ### 문제 수정
>
> #### 입력
>
> > XBOX에서 `GameInput`의 `NuGet` 버전에 있는 `GameInputCreate`를 호출할 때 메모리 부족 오류가 발생할 수 있는 문제를 수정했습니다. \[62353092]
>
> #### PIX
>
> > Lockhart 40GB에서 캡처한 캡처를 열 때 PIX가 콘솔 모드를 Lockhart로 잘못 보고하는 문제를 수정했습니다. \[62490828]
>
> #### 미디어
>
> > 입력 비디오 샘플을 제출하지 않고 디코더를 만들고 삭제할 때 H.264 디코더 MFT(Media Foundation Transform)가 삭제 중에 응답을 중지하는 문제를 수정했습니다. \[62525251]
>
> #### 시스템
>
> > 서명되지 않은(로컬) MSIXVC2 패키지가 `wdapp`을 사용하여 설치되지 않는 문제를 수정했습니다. \[62386086]
>
> ***
>
> ## 2026년 4월 GDK 업데이트 1
>
> ### 알림
>
> #### XBOX Game Package Manager
>
> > MSIXVC2 패키지를 만들고 업로드할 때는 GitHub의 최신 XGPM(XBOX Game Package Manager) UI 릴리스를 사용하세요. 이 릴리스에는 여러 수정 사항이 포함되어 있습니다. 다운로드하려면 [releases - Microsoft/PackageUploader](https://github.com/microsoft/PackageUploader/releases)로 이동하세요.
>
> ### 문제 수정
>
> #### 시스템
>
> > `XGameActivationAcceptPendingInvite` API의 메모리 누수를 수정했습니다. \[61953160]
>
> > 21자보다 긴 URI에서 `XLaunchUri`가 실패하는 문제를 수정했습니다. \[62181431]
>
> > C4768 컴파일러 오류를 일으킬 수 있는 `XGameInvite.h` 및 `XGameProtocol.h` GDK 헤더 파일의 문제를 수정했습니다. \[62181564]
>
> #### MSIXVC2
>
> > MSIXVC2 미리 보기 버전의 다양한 구성 요소 안정성 및 성능 문제를 수정했습니다. \[62225080]
>
> #### 개발자 도구
>
> > MicrosoftGame.config 편집기가 성공을 보고하면서도 파일을 저장하거나 새 파일을 만드는 데 자동으로 실패하는 문제를 수정했습니다. \[62226865]
>
> ***
>
> ## 2026년 4월 GDK
>
> ### 알림
>
> #### GDK 레이아웃 사용 중단
>
> > 2025년 10월 및 2026년 4월 GDK 릴리스에는 간소화된 레이아웃과 레거시 레이아웃이 모두 포함되어 있습니다. 2026년 10월 GDK부터 설치 프로그램은 기본적으로 간소화된 레이아웃만 설치합니다. 레거시 레이아웃은 여전히 선택적 설치 항목으로 선택할 수 있지만, 사용되지 않으며 더 이상 권장되는 개발 경로가 아닙니다.
> >
> > 레거시 레이아웃은 더 이상 지원되지 않으며 2027년 4월 GDK 릴리스부터 설치 프로그램에서 제거됩니다.
>
> #### API 사용 중단
>
> > `XGameActivation` API가 `XGameProtocol` 및 `XGameInvite` API를 대체하여 모든 게임 활성화 시나리오에 대한 단일 API 표면을 제공합니다. 따라서 `XGameProtocol` 및 `XGameInvite`는 이제 사용되지 않습니다. 기존 구현은 계속 작동하지만, 새로운 개발 및 향후 호환성을 위해 `XGameActivation`으로 마이그레이션하는 것이 좋습니다.
> >
> > 다음 API는 더 이상 사용되지 않습니다.
> >
> > * `XGameProtocolRegisterForActivation`
> > * `XGameProtocolUnregisterForActivation`
> > * `XGameInviteRegisterForEvent`
> > * `XGameInviteUnregisterForEvent`
> > * `XGameInviteRegisterForPendingEvent`
> > * `XGameInviteUnregisterForPendingEvent`
> > * `XGameInviteAcceptPendingInvite`
> >
> > 자세한 내용은 [XGameActivation](https://learn.microsoft.com/gaming/gdk/docs/reference/system/xgameactivation/xgameactivation_members?view=gdk-2604)을 참조하세요.
> >
> > \[61232139]
>
> #### 개발자 도구
>
> > Visual Studio 2019의 일반 지원이 만료되었습니다. 연장 지원은 2029년 4월까지 계속됩니다. Visual Studio 2019 제품 수명 주기 및 서비스에 대한 자세한 내용은 [Visual Studio 2019 제품 수명 주기 및 서비스](https://learn.microsoft.com/visualstudio/releases/2019/servicing-vs2019)를 참조하세요.
> >
> > Visual Studio 2019 및 v142 도구 집합 컴파일러는 2024년 4월부터 일반 지원이 종료되었으며 보안 서비스만 받고 있습니다. Visual Studio 2019 통합 지원과 Visual Studio 2022/Visual Studio 2026을 통한 v142 플랫폼 도구 집합 사용 지원은 향후 GDK 릴리스에서 제거됩니다. 이 과정에는 `Microsoft.Xbox.Services.142.GDK.C.lib` 라이브러리 제거가 포함됩니다. Visual Studio 2022 및 Visual Studio 2026의 경우 2026년 4월 GDK에 추가된 `Microsoft.Xbox.Services.143.GDK.C.lib`로 이동하는 것이 좋습니다.
> >
> > \[61594513]
>
> > XBOX용 ASAN(Address Sanitizer)은 Visual Studio 2019에서 더 이상 지원되지 않습니다. \[60868415]
>
> > 이제 XBOX Manager Media Capture 탭에서 화면 캡처를 클립보드에 복사할 수 있습니다. \[41667882]
>
> > 이제 `wdcapture`, `wdcapturesession`, `xblpcsandbox` 같은 PC 명령줄 도구에서 피드백 허브 앱을 통해 버그 피드백을 직접 제출할 수 있습니다. \[60250549]
>
> > 이제 Package Uploader에서 페더레이션 자격 증명을 지원합니다. \[60771527]
>
> #### Microsoft Azure PlayFab
>
> > PlayFab Multiplayer가 v1.9.0으로 업데이트되었습니다. 자세한 내용은 [PlayFab Multiplayer C++ SDK 릴리스 노트 - PlayFab | Microsoft Learn](https://docs.xbox.com/ko/gaming/playfab/multiplayer/lobby/lobby-matchmaking-sdks/lobby-and-matchmaking-release-notes#190)을 참조하세요. \[61288995]
>
> #### Microsoft Azure PlayFab Party
>
> > PlayFab Party가 v1.10.18로 업데이트되었습니다. 자세한 내용은 [PlayFab Party 릴리스 노트 - PlayFab | Microsoft Learn](https://docs.xbox.com/ko/gaming/playfab/multiplayer/networking/release-notes#11018)을 참조하세요. \[61288995]
>
> #### 문제 수정
>
> > xbapp.exe 또는 xbconnect.exe 같은 GDK XBOX 명령줄 도구를 실행한 후 영어가 아닌 명령 프롬프트의 언어 설정이 영어로 변경되는 문제를 수정했습니다. \[59688191]
>
> > XBOX Game Package Manager가 마지막으로 선택한 분기로 UI를 채우지 않는 문제를 수정했습니다. \[60771527]
>
> ***
>
> ## 알려진 문제
>
> ### makepkg2: /priorpackage가 MSIXVC2 패키지에 대한 비교 보고서를 생성하지 않음
>
> > **문제:**\
> > `makepkg2`에서 MSIXVC2 패키지를 팩할 때 `/priorpackage` 플래그를 사용해도 비교 보고서가 생성되지 않습니다. 이 릴리스에서는 MSIXVC2 패키지에 대한 비교 보고서 생성이 지원되지 않습니다.
> >
> > **적용 대상:**
> >
> > * 2026년 4월 GDK
> >
> > **해결 방법:**\
> > 현재 없음.
> >
> > **상태:**\
> > 이 문제는 향후 GDK 업데이트에서 수정될 예정입니다.
> >
> > \[61771743]
>
> ### makepkg2: layout.xml에서 모든 기능에 DisplayName이 필요함
>
> > **문제:**\
> > `makepkg2`에서 `layout.xml` 파서는 표시 이름이 의미가 없는 숨겨진 기능을 포함하여 모든 기능에 `DisplayName` 특성을 요구합니다.
> >
> > **적용 대상:**
> >
> > * 2026년 4월 GDK
> >
> > **해결 방법:**\
> > `layout.xml`의 숨겨진 기능에 자리 표시자 `DisplayName` 특성을 추가하세요.
> >
> > **상태:**\
> > 이 문제는 향후 GDK 업데이트에서 수정될 예정입니다.
> >
> > \[61767246]
>
> ### makepkg2: MicrosoftGame.config에 ContentId가 없으면 /contentid 플래그가 실패함
>
> > **문제:**\
> > `makepkg2`에서 `MicrosoftGame.config`에 `ContentId`가 지정되지 않은 상태로 `/contentid` 플래그를 사용하면 다음 오류가 발생합니다.
> >
> > *`/contentid specified on the command line does not match the ContentId derived from the MicrosoftGame.config file.`*
> >
> > 이 동작은 이 시나리오에서 `/contentid` 값을 그대로 허용하던 `makepkg`와 다릅니다.
> >
> > **적용 대상:**
> >
> > * 2026년 4월 GDK
> >
> > **해결 방법:**\
> > `/contentid` 대신 `/contentidoverride`를 사용하세요.
> >
> > **상태:**\
> > 이 문제는 향후 GDK 업데이트에서 수정될 예정입니다.
> >
> > \[61767256]
>
> ### MSIXVC2 패키지를 Microsoft 파트너 센터 웹 UI를 통해 업로드할 수 없음
>
> > **문제:**\
> > 새 `makepkg2` 도구를 사용하여 빌드한 `.msixvc` 패키지는 파트너 센터에 업로드하지 못합니다.
> >
> > **적용 대상:**
> >
> > * 파트너 센터 웹 UI
> >
> > **해결 방법:**\
> > 다음 도구 중 하나를 사용하여 MSIXVC2 패키지를 파트너 센터에 업로드하세요.
> >
> > * `makepkg2` upload 명령: `makepkg2 upload /d <content_directory> /branch "<BranchName>" /msixvc2`
> >
> > * **XBOX Game Package Manager**: [https://github.com/microsoft/PackageUploader](https://github.com/microsoft/PackageUploader)에서 최신 버전을 다운로드하세요.
> >
> > **상태:**\
> > 파트너 센터는 향후 몇 개월 내에 MSIXVC2 패키지의 웹 업로드 지원을 추가하도록 업데이트될 예정입니다.
>
> ### XboxPcTray.exe가 MSIXVC2 패키지 제거 또는 업데이트를 차단할 수 있음
>
> > **문제:**\
> > `XboxPcTray.exe`가 게임의 Content 폴더에 대한 핸들을 유지하는 경우가 있으며, 이로 인해 제거 또는 업데이트 작업이 완료되지 않을 수 있습니다.
> >
> > **적용 대상:**
> >
> > * 2026년 4월 GDK
> >
> > **해결 방법:**\
> > 제거 또는 업데이트를 시도하기 전에 XBOX PC Tray 앱을 닫으세요. 앱을 닫으려면 시스템 트레이에서 `XboxPcTray` 아이콘을 마우스 오른쪽 단추로 클릭한 다음 **Quit**를 선택합니다. 작업 관리자에서 `XboxPcTray.exe` 프로세스를 종료할 수도 있습니다.
> >
> > **상태:**\
> > 이 문제는 향후 GDK 업데이트에서 수정될 예정입니다.
> >
> > \[61618609]
>
> ### MSIXVC2 패키지를 Package Uploader를 통해 업로드할 수 없음
>
> > **문제:**\
> > `/msixvc2` 플래그와 함께 `makepkg2` 도구를 사용하여 빌드한 `.msixvc` 패키지를 Package Uploader 명령줄 도구를 통해 파트너 센터에 업로드하면 400(Bad Request) 오류와 함께 실패합니다. MSIXVC 및 MSIXVC2 패키지는 동일한 `.msixvc` 파일 확장명을 공유하지만, MSIXVC2 패키지는 Package Uploader가 현재 지원하지 않는 다른 내부 형식을 사용합니다.
> >
> > **적용 대상:**
> >
> > * Package Uploader CLI(PackageUploader.exe)
> >
> > **해결 방법:**\
> > 다음 도구 중 하나를 사용하여 MSIXVC2 패키지를 업로드하세요.
> >
> > * makepkg2 upload 명령: `makepkg2 upload /d <content_directory> /branch "<BranchName>" /msixvc2>`
> > * **XBOX Game Package Manager:** [https://github.com/microsoft/PackageUploader](https://github.com/microsoft/PackageUploader)에서 최신 버전을 다운로드하세요.
> >
> > **상태:**\
> > 이 문제는 향후 Package Uploader 릴리스에서 해결될 예정입니다.
>
> ### 파트너 센터 UI에서 MSIXVC2 패키지 크기가 1바이트로 표시됨
>
> > **문제:**\
> > 파트너 센터에 업로드된 MSIXVC2 패키지의 크기가 잘못 표시됩니다. 패키지 크기와 관계없이 1바이트로 표시됩니다.
> >
> > **적용 대상:**
> >
> > * 파트너 센터
> >
> > **해결 방법:**\
> > 현재 없음.
> >
> > **상태:**\
> > 이 문제는 향후 GDK 도구 업데이트에서 수정될 예정입니다.
>
> ### Visual Studio 2026용 BWOI(Build With/Out Install) MSBuild 통합
>
> > **문제:**\
> > Visual Studio 2026용 BWOI(Build With/Out Install) MSBuild 통합은 이전 릴리스와 약간 다릅니다. 현재 Visual Studio 2026 릴리스에서는 BWOI 구현이 특정 `VCTargetsPath`에 "고정"되어야 합니다. 그 결과, `PlatformToolset` 값이 v142 또는 v143으로 설정되어 있더라도 모든 프로젝트가 v145 또는 clang-cl로 빌드됩니다. 이러한 이전 도구 집합은 일반적인 Visual Studio 시나리오에서는 대개 올바르게 빌드됩니다.
> >
> > **적용 대상:**
> >
> > * 2026년 4월 GDK
> >
> > **해결 방법:**\
> > 해결 방법에 대한 자세한 내용은 [BWOIExample](https://github.com/microsoft/Xbox-GDK-Samples/tree/main/Samples/Tools/BWOIExample/readme_en-us.md)을 참조하세요.
> >
> > **상태:**\
> > GDK 팀과 Visual Studio 팀은 향후 Visual Studio 릴리스에서 이 문제를 해결하기 위해 노력하고 있습니다.
> >
> > \[61855642]
>
> ***
>
> ## 설명서
>
> > 2026년 4월 릴리스 GDKX의 오프라인 설명서는 GDKX 설치 프로그램에 의해 개발 PC에 설치됩니다. 설치 프로그램을 실행한 후 GDKX의 도움말 파일(gdk.chm)은 C:\Program Files (x86)\Microsoft GDK\Documentation에 있습니다.
>
> > * 온라인 GDKX 및 GDK 설명서는 [Game Development Kit(GDK) 설명서](https://aka.ms/gdkonline)에 있습니다.
>
> ***

> [tab] GDK 2510
>
> ## 2025년 10월 Microsoft Game Development Kit(GDK) 릴리스 노트
>
> ## 소개
>
> 2025년 10월 Microsoft Game Development Kit 릴리스를 소개합니다. GDK를 사용하면 Windows 11 PC 및 Windows 10 PC에서 출시하도록 인증 및 승인받을 수 있는 게임을 개발할 수 있습니다.
>
> ### 이 문서 정보
>
> 이 문서는 다음 섹션으로 구성되어 있습니다.
>
> * [새로운 기능](#whats-new-in-the-october-2025-microsoft-game-development-kit)
> * **릴리스 노트:**
>   * [2025년 10월 GDK 업데이트 4](#october-2025-gdk-update-4)
>   * [2025년 10월 GDK 업데이트 3](#october-2025-gdk-update-3)
>   * [2025년 10월 GDK 업데이트 2](#october-2025-gdk-update-2)
>   * [2025년 10월 GDK 업데이트 1](#october-2025-gdk-update-1)
>   * [2025년 10월 GDK](#october-2025-gdk)
> * [알려진 문제](#known-issues)
> * [설명서](#documentation)
>
> ### 2025년 10월 Microsoft Game Development Kit의 새로운 기능
>
> > * GDK는 두 가지 유형으로 릴리스됩니다. 주 릴리스(기능 중심, 1년에 두 번)와 업데이트(수정 중심, 필요에 따라 수시로)입니다.
> > * 전체 새로운 기능 섹션을 보려면 온라인 버전의 [새로운 기능](https://learn.microsoft.com/gaming/gdk/_content/gc/intro/whatsnew/whats-new)을 참조하세요.
>
> ***
>
> ## 2025년 10월 GDK 업데이트 4
>
> ### 문제 수정
>
> #### PlayFab Game Saves
>
> > 클라우드 폴더 삭제를 적용할 때 동기화된 적이 없는 로컬 파일이 삭제될 수 있는 문제를 수정했으며, 압축 중에 타이틀이 확정 진행률 표시줄을 애니메이션으로 표시할 수 있도록 업로드 진행률 보고의 세분성을 높였습니다. \[63666969]
>
> > 실패한 클라우드 스토리지 전송이 성공으로 보고되어 데이터가 누락된 상태로 저장이 완료되고 해당 플레이어의 저장 데이터가 모든 디바이스에서 영구적으로 동기화되지 않을 수 있는 문제를 수정했습니다. \[63475452]
>
> > 동기화 중 저장 데이터 손실, 게임 저장이 GDK 컨텍스트를 공유할 때의 메모리 손상, 유효성 검사에 실패한 매니페스트의 잘못된 처리를 일으킬 수 있는 문제를 수정했습니다. \[63647898]
>
> > 게임 저장 동기화 진행률 콜백이 총 크기를 0으로 보고하여 타이틀이 확정 진행률 표시줄을 표시하지 못하는 문제를 수정했습니다. \[63529869]
>
> ***
>
> ## 2025년 10월 GDK 업데이트 3
>
> ### 알림
>
> #### 파일 형식 연결 등록
>
> > 이제 PC 게임에서 MicrosoftGame.Config에 파일 형식 연결을 등록할 수 있습니다. 사용자가 등록된 확장명의 파일을 열면 게임이 시작되거나 포그라운드로 전환됩니다. 이 동작은 `XGameActivation*` API(예: `XGameActivationRegisterForEvent()`)를 통해 사용하도록 설정됩니다.
>
> #### 입력
>
> > SIPC(Simple Interprocess Communication)를 사용하는 모션 지원 컨트롤러가 이제 PC 센서 융합 파이프라인을 공유합니다. 가속도계 및 자이로스코프 스케일링, 시작 시 자이로스코프 바이어스 캡처, 정지 상태 기반 드리프트 보정이 PC와 동등합니다. 따라서 `IGameInputReading::GetMotionState`는 드리프트가 제한된 중력 기준 방향을 반환합니다.
>
> #### PlayFab Game Saves
>
> > XBOX/GRTS(Gaming Runtime Services) 동작과 일치하도록, Steam Deck에서 Keep Local 또는 Keep Cloud 중에서 선택할 때 폐기된 게임 저장을 보존하고 롤백하는 기능이 사용하지 않도록 설정되었습니다.
>
> ### 문제 수정
>
> #### 네트워킹
>
> > 디버거에서 일시 중지된 상태에서 WebSocket 연결이 끊긴 후 라이브러리가 충돌할 수 있는 문제를 수정했습니다.
>
> #### XBOX 서비스
>
> > `libHttpClient`의 use-after-free 조건으로 인해 WinHTTP 기반 HTTP 호출이 불안정해질 수 있는 문제를 수정했습니다.
>
> #### 입력
>
> > XBOX에서 `GameInput`의 `NuGet` 버전에 있는 `GameInputCreate`를 호출할 때 메모리 부족 오류가 발생할 수 있는 문제를 수정했습니다.
>
> > 일시 중단된 게임을 다시 시작한 후 입력이 손실될 수 있는 문제를 수정했습니다.
>
> #### 미디어
>
> > 입력 비디오 샘플을 제출하지 않고 디코더를 만들고 삭제할 때 H.264 디코더 MFT(Media Foundation Transform)가 삭제 중에 응답을 중지하는 문제를 수정했습니다.
>
> #### PlayFab Game Saves
>
> > `PFGameSaves`가 누락된 레지스트리 키를 잘못 처리하여 초기화 오류가 발생하는 문제를 수정했습니다.
>
> > Steam Deck에서 저장 작업 중에 특정 진단 필드가 잘못 채워지는 사소한 원격 분석 보고 문제를 수정했습니다.
>
> ***
>
> ## 2025년 10월 GDK 업데이트 2
>
> ### 알림
>
> #### Microsoft Azure PlayFab Party v2.2.7 업데이트
>
> > * 토큰이 만료되기 전에 발생하는 일시적 오류에 대해서는 `PartyServiceError`를 반환하고, 토큰이 실제로 만료된 경우에만 `UserNotAuthorized`를 반환하도록 `PartyNetwork::CreateEndpoint` `PartyStatusChangeResult` 동작을 변경했습니다.
> > * XUser가 없거나 in-proc GRTS(Gaming Runtime Services) 환경에 대한 오디오 디바이스 선택 지원을 추가했습니다.
> > * 다중 네트워크 전환 시나리오에서 발생할 수 있는 충돌을 수정했습니다.
>
> #### PlayFab Party v1.10.16 업데이트
>
> > * 토큰이 만료되기 전에 발생하는 일시적 오류에 대해서는 `PartyServiceError`를 반환하고, 토큰이 실제로 만료된 경우에만 `UserNotAuthorized`를 반환하도록 `PartyNetwork::CreateEndpoint` `PartyStatusChangeResult` 동작이 변경되었습니다.
> > * XUser가 없거나 in-proc GRTS(Gaming Runtime Services) 환경에 대한 오디오 디바이스 선택 지원이 추가되었습니다.
> > * 다중 네트워크 전환 시나리오에서 발생할 수 있는 충돌이 수정되었습니다.
>
> #### XBOX 서비스
>
> > 기존 GRTS(Gaming Runtime Services) 기능과 일치하도록 in-proc `xgamingruntime`에서 디버거로의 추적 출력을 사용하도록 설정하는 기능을 추가했습니다.
> >
> > Visual Studio 출력 창에서 HTTP/WebSocket 추적 메시지를 사용하도록 설정하려면 `HKEY_LOCAL_MACHINE\Software\Microsoft\GamingServices\Auth\TraceToDebugger`(`REG_DWORD`) 레지스트리 키를 `1`로 설정하세요. 이 설정은 네트워크 문제, 프록시 구성 및 인증 문제를 디버깅하는 데 유용합니다. 이 기능은 옵트인 방식이며 사용하지 않도록 설정하면 영향이 없습니다.
>
> #### 네트워킹
>
> > `curl_global_cleanup()` 호출 사이에 `xcurl_global_init_mem()` 또는 `curl_global_init_mem()`을 여러 번 호출할 수 있도록 `XCurl`이 업데이트되었습니다. 이 새로운 동작은 `curl_global_init_mem()`에 대한 `LibCurl` 동작과 일치하므로 `XCurl` API가 `LibCurl`의 기대 동작과 동기화됩니다. 또한 `curl_global_init()`, `curl_global_init_mem()`, `xcurl_global_init_mem()` 및 `curl_global_cleanup()`이 스레드로부터 안전하게 변경되었습니다.
>
> #### packageutil compare Intelligent Delivery 태그 시뮬레이션 수정
>
> > `packageutil compare`의 논리 오류로 인해 태그 기반 시뮬레이션을 실행할 때마다 Intelligent Delivery 시뮬레이션에서 필수 비 OnDemand 태그가 제외되었습니다. 이로 인해 OnDemand 또는 기능 기반 패키징을 사용하는 타이틀의 크기 및 업데이트 예측이 부정확했습니다.
> >
> > 이 수정으로 다음이 보장됩니다.
> >
> > * 기능이 아닌 패키지의 시뮬레이션에 **비 OnDemand 태그가 항상 포함됩니다**.
> > * 분할된 태그와 전체 기능 및 단일 기능 시뮬레이션을 포함하여 **기능 기반 패키지가 완전히 지원됩니다**.
> >
> > 이 수정으로 정확한 크기 보고가 복원되며, 파트너가 ID 구성을 올바르게 평가할 수 있습니다.
> >
> > 영향을 받는 바이너리: `PackageUtil.exe`
>
> ***
>
> ### 문제 수정
>
> #### GDK 도구
>
> > GDK Tools 설치 프로그램에 포함된 GDK 명령 프롬프트가 도구가 있는 GDK `bin` 디렉터리를 제대로 포함하지 않는 문제를 수정했습니다.
>
> > `XblTestAccountGui` 도구가 다음 오류 메시지와 함께 로그인에 실패하는 문제를 수정했습니다.
> >
> > Live auth error: Login Error: The remote server returned an error: (400) Bad Request.
>
> > `/features` 명령줄 스위치를 사용한 GDK 자동 설치에서 레거시 레이아웃 구성 요소 설치를 건너뛰는 문제를 수정했습니다.
>
> #### Microsoft Azure PlayFab Game Saves
>
> > 게임에서 PlayFab Game Saves를 사용할 때 다시 시작 시 `FAIL_FAST`가 발생하는 문제를 수정했습니다.
>
> > inproc PlayFab Games Saves를 사용할 때 실제 디바이스 충돌이 발생하지 않았는데도 디바이스 경합 콜백이 잘못 호출될 수 있는 문제를 수정했습니다. 이전에는 PlayFab SDK가 보류 중인 매니페스트가 없는 것을 다른 디바이스가 제어권을 가져간 증거로 처리했습니다. 그러나 이는 정상적인 시나리오(예: 진행 중인 동기화가 없거나 로컬 디바이스가 자체 업로드를 완료한 경우)에서도 발생할 수 있습니다. 이제 SDK는 경합 콜백을 트리거하기 전에 확정된 매니페스트가 실제로 다른 디바이스에서 생성되었는지 올바르게 확인하여 게임에 대한 거짓 긍정 알림을 방지합니다.
>
> > 지정한 저장 폴더 디렉터리가 아직 없거나 제공된 경로에 후행 백슬래시가 없는 경우 GRTS(Gaming Runtime Services)에서 PlayFab Game Saves 초기화가 실패하는 문제를 수정했습니다. 이제 PlayFab SDK는 필요한 경우 디렉터리를 자동으로 만들고 초기화 전에 올바른 경로 형식을 보장합니다.
>
> > 확정된 클라우드 매니페스트 버전이 이미 그 이후로 진행된 후에도 inproc 버전의 PlayFab Game Saves가 오래된 보류 중인 매니페스트를 잘못 재사용할 수 있는 동기화 문제를 수정했습니다. 이제 보류 중인 매니페스트는 현재 디바이스에 속하면서 *동시에* 확정된 클라우드 버전보다 버전이 높은 경우에만 재사용됩니다. 이 변경으로 다중 디바이스 동기화 시나리오에서 발생할 수 있는 데이터 불일치를 방지합니다.
>
> > 서로 다른 스토리지 공급자(in-process 대 GRTS(Gaming Runtime Services))를 사용하여 디바이스 간에 게임 저장을 동기화할 때 파일 수정 타임스탬프가 잘못되는 문제를 수정했습니다. 이제 압축 보관 파일을 만들 때 파일 타임스탬프가 올바르게 보존되고 UTC로 변환되어 모든 플랫폼에서 일관된 타임스탬프 동작을 보장합니다.
>
> > Steam Deck에서 게임 저장 설명이 형식이 잘못되었거나 손상된 데이터를 반환하는 문제를 수정했습니다. 이제 저장 설명은 매니페스트에서 검색될 때 올바르게 Base64 디코딩되므로 원래 설정된 사람이 읽을 수 있는 올바른 설명 텍스트를 얻을 수 있습니다.
>
> > inproc PlayFab Game Saves를 사용할 때 진행률 대화 상자에서 동기화 작업을 취소하면 어설션 실패 및 불안정한 동작이 발생할 수 있는 문제를 수정했습니다. 취소 메커니즘이 스레드로부터 안전한 원자성 플래그 방식을 사용하도록 다시 설계되었습니다.
> >
> > 이 변경으로 사용자는 경합 상태나 어설션 실패를 트리거하지 않고 진행률 UI에서 진행 중인 업로드 또는 다운로드 작업을 안전하게 취소할 수 있습니다. 이제 SDK는 동기화 작업의 주요 단계에서 취소 요청을 올바르게 확인하고 사용자 취소 오류 코드와 함께 깔끔하게 종료합니다.
>
> > inproc PlayFab Game Saves를 사용할 때 작은 파일을 다수(예: 1,000개 이상의 작은 텍스트 파일) 다운로드하면 실패하는 문제를 수정했습니다. 진행률 추적에서 전송 진행률 보고에 압축되지 않은 파일 크기를 잘못 사용하여, 압축된 작은 파일을 많이 처리할 때 불일치가 발생했습니다. 이제 진행률 보고는 압축된 바이트 크기를 올바르게 추적하여 실제 네트워크 전송 진행률을 정확하게 반영합니다.
>
> > inproc PlayFab Game Saves를 사용하는 동안 클라우드에서 연결이 끊긴 상태로 `PFGameSaveFilesSetSaveDescriptionAsync` API를 호출할 때 발생하는 충돌을 수정했습니다. 이제 이 API는 충돌하는 대신 적절한 오류 코드를 반환합니다.
>
> > inproc `PFGameSaveFiles`를 사용할 때 종료 중에 동기화 실패 콜백이 응답 대기 중인 경우 `PFUninitializeAsync()`가 응답을 중지하는 문제를 수정했습니다. 이제 SDK는 초기화를 해제할 때 보류 중인 UI 콜백을 자동으로 취소하므로 게임이 `syncFailedCallback`에 응답하지 않더라도 깔끔하게 종료됩니다.
>
> > PlayFab Game Saves를 사용하여 활성 디바이스를 변경할 때 게임이 충돌할 수 있는 문제를 수정했습니다.
>
> > inproc PlayFab Game Saves를 사용할 때 충돌 콜백에 잘못된 타임스탬프가 표시되는 문제를 수정했습니다.
>
> > Steam Deck에서 오프라인 상태로 호출할 때 `PFGameSaveFilesSetSaveDescriptionAsync`가 `E_FAIL`을 반환하고 이후 호출이 응답을 중지하는 문제를 수정했습니다.
>
> > Steam Deck에서 실패한 업로드를 취소하면 이후의 모든 업로드가 `E_PF_GAME_SAVE_MANIFEST_UPDATES_NOT_ALLOWED`와 함께 영구적으로 실패하는 문제를 수정했습니다.
>
> > 서비스 오류 중에 이전 업로드가 취소된 경우 `PFGameSaveFilesUploadWithUiAsync`가 무기한 중단될 수 있는 문제를 수정했습니다. 이제 다시 시도할 때 동기화 실패 UI 콜백이 올바르게 표시되어 사용자가 작업을 취소하거나 다시 시도할 수 있습니다.
>
> #### 네트워킹
>
> > 첫 번째 로비 또는 매치메이킹 시도 후 24시간이 지났을 때 라이브러리가 정리되지 않은 경우 후속 로비 만들기, 후속 로비 참가, 로비 초대 구독 또는 후속 매치메이킹 티켓 만들기에 실패할 수 있는 문제를 수정했습니다.
>
> #### XBOX 서비스
>
> > Steam Deck에서 다음 두 가지 특정 경우에 게임 초대 콜백이 실행되지 않는 문제를 수정했습니다.
> >
> > * 초대와 함께 Multiplayer Activity 연결 문자열이 제공되지 않은 경우
> > * `XUser`가 이미 추가된 후에 타이틀에서 초대 처리기를 추가한 경우
>
> > 프록시(예: Fiddler)가 `netsh winhttp set proxy`를 통해 구성된 경우 in-proc 게이밍 런타임이 WinHTTP 프록시 설정을 사용하지 않아 `E_XAL_NETWORK` 오류가 발생하는 문제를 수정했습니다.
>
> ***
>
> ## 2025년 10월 GDK 업데이트 1
>
> > * GDKX와 GDK는 두 가지 유형으로 릴리스됩니다. 주 릴리스(기능 중심, 1년에 두 번)와 업데이트(수정 중심, 파트너의 필요에 따라 수시로)입니다.
> > * 전체 새로운 기능 섹션을 보려면 온라인 버전의 [새로운 기능](https://learn.microsoft.com/en-us/gaming/gdk/docs/gdk-dev/whatsnew/whats-new)을 참조하세요.
> > * 이전 버전의 릴리스 노트를 보려면 GDK 포럼의 [릴리스 노트 게시물](https://aka.ms/gdkreleasenotes)을 참조하거나 온라인 설명서의 [GDK 릴리스 노트](https://learn.microsoft.com/gaming/gdk/_content/gc/intro/release-notes/release-notes)에서 릴리스 노트를 확인하세요.
>
> ### 알림
>
> #### API 사용 중단
>
> > `XGameActivation` API가 `XGameProtocol` 및 `XGameInvite` API를 대체하여 모든 게임 활성화 시나리오에 대한 단일 API 표면을 제공합니다. 따라서 `XGameProtocol` 및 `XGameInvite`는 이제 사용되지 않습니다. 기존 구현은 계속 작동하지만, 새로운 개발 및 향후 호환성을 위해 `XGameActivation`으로 마이그레이션하는 것이 좋습니다.
> >
> > 다음 API는 더 이상 사용되지 않습니다.
> >
> > * `XGameProtocolRegisterForActivation`
> > * `XGameProtocolUnregisterForActivation`
> > * `XGameInviteRegisterForEvent`
> > * `XGameInviteUnregisterForEvent`
> > * `XGameInviteRegisterForPendingEvent`
> > * `XGameInviteUnregisterForPendingEvent`
> > * `XGameInviteAcceptPendingInvite`
> >
> > 자세한 내용은 [XGameActivation](https://learn.microsoft.com/gaming/gdk/docs/reference/system/xgameactivation/xgameactivation_members?view=gdk-2604)을 참조하세요.
> >
> > \[61232139]
>
> #### 플랫폼 간 기능
>
> > Steam Deck에서 플레이어 로그아웃을 지원하기 위해 `XUserSignOutAsync` 및 `XUserSignOutResult`가 추가되었습니다. `XUserIsSignOutPresent`를 사용하여 현재 디바이스가 API를 통한 로그아웃을 지원하는지 확인할 수 있습니다. \[59457172]
>
> #### XBOX 서비스
>
> > 이전에 in-proc 및 out-of-proc 시나리오에서 일관되지 않게 동작하던 `XGameInvite` 콜백의 일관성을 복원하기 위해 세 가지 새 API인 `XGameInviteRegisterForPendingEvent`, `XGameInviteUnregisterForPendingEvent` 및 `XGameInviteAcceptPendingInvite`가 추가되었습니다. 새 보류 중인 초대 처리기는 in-proc 흐름에서만 호출됩니다. 타이틀이 초대 수락을 처리한 후 `XGameInviteAcceptPendingInvite`가 호출됩니다. 그러면 초대 수락 콜백이 트리거됩니다.
> >
> > Windows 및 XBOX 콘솔(GRTS(Gaming Runtime Services)를 사용할 수 있는 경우)에서는 셸 UI가 초대 수락 흐름을 담당했습니다. 타이틀은 초대가 수락된 경우에만 알림을 받았습니다. Steam Deck과 같은 in-proc 시나리오에서는 타이틀이 초대 수락을 처리합니다. 타이틀이 수락 흐름을 관리할 수 있도록 초대를 받으면 `XGameInvite` 콜백이 실행됩니다.
> >
> > \[59693389]
>
> #### 그래픽
>
> > XBOX One 제품군의 경우 인덱스 재사용과 `SV_ViewportArrayIndex`를 내보내는 꼭짓점 셰이더를 사용할 때 중복 제거 문제를 방지하기 위해 새 `D3D12XBOX_PIPELINE_STATE_FLAG_VS_EXPORT_VIEWPORT_INDEX_REUSE` 플래그가 추가되었습니다. \[59989696]
>
> #### 시스템
>
> > 이제 XBOX에서 `DirectStorage`를 초기화할 때 `StagingBuffer`의 크기를 줄여 타이틀 메모리를 확보할 수 있습니다.
> >
> > 기본 스테이징 크기인 32MB에서 최대 16MB까지 버퍼를 절약할 수 있는 열거형 값을 사용할 수 있습니다. 그러나 더 작은 버퍼를 사용하면 파일 성능이 약간 저하됩니다. 자세한 내용은 [DirectStorage](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/system/dstorage/enums/dstorage_staging_buffer_size)를 참조하세요.
> >
> > \[60006847]
>
> > 이제 새 인터페이스인 `IDStorageFactoryX2`를 사용할 수 있습니다. 이 인터페이스는 `DirectStorage` 큐를 만들기 위한 새 API인 `CreateQueue1`을 노출합니다. 이 API는 새 큐 정의 구조를 사용하므로 새로 만든 `DirectStorage` 큐 내에서 자동 제출이 발생하는지 여부를 제어할 수 있습니다. 자세한 내용은 [DirectStorage](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/system/dstorage/dstorage_members)를 참조하세요. \[60039148]
>
> > 2025년 10월 GDK에는 `XGameUi` 콜백이 도입되었습니다. 이 콜백을 사용하면 개발자가 Steam Deck 플랫폼에서 자체 UX를 구현할 수 있습니다. 이러한 콜백 중 일부, 특히 사용자 상호 작용이 없는 UI 구성 요소에 대한 콜백에는 연결된 `SetResponse` API가 없었습니다. 이 API는 비동기 UI 호출을 완료하는 역할을 합니다. 이제 개발자가 Steam Deck에서 모든 `XGameUi` 호출을 완료할 수 있도록 이러한 API가 도입되었습니다. \[60149696]
>
> #### Microsoft Azure PlayFab Game Saves
>
> > 이제 업로드 진행률 추적에서 압축된 바이트 수를 보고합니다. 이 변경으로 진행률 콜백 및 원격 분석이 실제로 스트리밍된 데이터와 일치하게 유지되며, 큰 저장 데이터의 압축률이 낮을 때 "완료" 비율이 너무 일찍 표시되는 것을 방지합니다. \[60147964]
>
> > 이전에 작동하지 않던 `PFGameSaveFilesAddUserOptions::RollbackToLastKnownGood` 및 `RollbackToLastConflict` 플래그가 사용하도록 설정되었습니다. 이제 이 플래그는 `PFGameSaveFilesAddUserWithUiAsync` 중에 롤백 요청을 따릅니다. 타이틀은 항상 최신 저장으로 동기화되는 대신 예상한 선택 항목을 얻습니다. \[60147982]
>
> > 이제 초기화가 `E_INVALIDARG` 실패(예: Steam Deck 저장 경로 누락) 후 올바르게 정리됩니다. 이 변경으로 후속 호출에서 더 이상 "이미 초기화됨"을 보고하지 않습니다. \[60148008]
>
> > out-of-process로 실행할 때 진단을 개선하기 위해 로깅이 추가되었습니다. \[60148021]
>
> #### PIX
>
> > 프로그래밍 방식 타이밍 캡처를 변환할 때 UI의 **GPU Only Events** 설정이 무시되었습니다. 이제 이러한 설정이 변환된 캡처에 적용됩니다. \[60294683]
>
> ### 문제 수정
>
> #### Microsoft Azure PlayFab Party
>
> > XBOX 네트워크 사용자 없이 Windows에서 플레이하는 Steam 게임 및 Steam Deck을 포함하여 `XUser`가 로그인되어 있지 않을 때 PlayFab Party 음성 채팅을 설정할 수 없는 문제를 수정했습니다. \[59804895]
>
> #### XBOX 서비스
>
> > Steam Deck에서 게임이 `XGameInvite` 콜백으로부터 받은 URI가 Windows에서 받은 URI와 일치하지 않는 문제를 수정했습니다. Steam Deck URI에는 연결 문자열만 포함되었고 보낸 사람 정보와 초대된 사용자 XUID가 누락되었습니다. \[59990660]
>
> #### 시스템
>
> > in-proc `XGameRuntime`에서 `XGameGetXboxTitleId`가 `E_GAMERUNTIME_SERVICE_NOT_AVAILABLE`과 함께 실패하는 문제를 수정했습니다. 이 실패는 연쇄적으로 영향을 주어 `XblMultiplayerActivitySendInvitesAsync`를 포함한 다른 XBOX API도 실패하게 했습니다. \[60043213]
>
> > 타이틀이 `XLaunchNewGame`을 호출한 후 Visual Studio의 Break On Suspend Timeout 구성이 적용되지 않는 문제를 수정했습니다. \[60063672]
>
> #### 그래픽
>
> > DCC(델타 색 압축)를 사용하는 present 버퍼에 대해 `D3D12XBOX_RESOURCE_FLAG_FORCE_TEXTURE_COMPATIBILITY` 플래그가 적용되지 않는 문제를 수정했습니다. \[60237976]
>
> #### GDK 도구
>
> > XBOX One GDK 명령 프롬프트 또는 Scarlett GDK 명령 프롬프트에서 잘못된 버전의 dxc.exe가 실행되는 문제를 수정했습니다. XBOX 버전 대신 Windows 버전이 실행되고 있었습니다. \[60265047]
>
> #### PIX
>
> > Simple `DispatchMesh` 명령과 함께 `ExecuteIndirect`를 사용한 경우 Mesh Shader Output에 오류가 표시되는 문제를 수정했습니다. \[60270639]
>
> ***
>
> ## 2025년 10월 GDK
>
> ### 알림
>
> #### GDK 레이아웃 사용 중단
>
> > 2025년 10월 및 2026년 4월 GDK 릴리스에는 간소화된 레이아웃과 레거시 레이아웃이 모두 포함되어 있습니다. 2026년 10월 GDK부터 설치 프로그램은 기본적으로 간소화된 레이아웃만 설치합니다. 레거시 레이아웃은 여전히 선택적 설치 항목으로 선택할 수 있지만, 사용되지 않으며 더 이상 권장되는 개발 경로가 아닙니다.
> >
> > 레거시 레이아웃은 더 이상 지원되지 않으며 2027년 4월 GDK 릴리스부터 설치 프로그램에서 제거됩니다.
>
> #### GDK 도구
>
> > 최신 버전의 SubmissionValidator.dll이 있는지 확인하기 위해 MakePkg에 `/updatesubval` 플래그가 추가되었습니다. 이 플래그를 사용하고 최신 버전의 SubmissionValidator.dll을 사용할 수 있는 경우 MakePkg는 .dll 파일을 다운로드하여 MakePkg 경로에 배치합니다. \[56987338]
>
> > TAK CLI(Touch Adaptation Kit Command Line Tool)(tak.exe)가 GDK 설치에서 제거되었습니다. 이 도구를 다운로드하는 방법에 대한 지침은 [GitHub의 TAK CLI](https://aka.ms/get-takcli)로 이동하세요. \[57605599]
>
> ### 문제 수정
>
> #### 그래픽
>
> > XBOX Series X|S 콘솔의 Direct3D 12 드라이버에서 블록 압축 리소스의 비 블록 압축 뷰(SRV(Shader Resource View) 및 UAV(Unordered Access View))가 잘못된 크기로 생성되는 문제를 수정했습니다. \[57051436]
>
> ***
>
> ## 알려진 문제
>
> ### 오프라인 Markdown .zip 파일
>
> > **문제:**\
> > 현재 오프라인 Markdown .zip 파일을 사용할 수 없습니다.
> >
> > **적용 대상:**
> >
> > * 2025년 10월 GDK
> > * 2025년 10월 GDK 업데이트 1
> >
> > **지침:**\
> > 오프라인 설명서는 여전히 [https://aka.ms/gdkdl](https://aka.ms/gdkdl)에서 CHM(컴파일된 HTML 도움말) 파일로 다운로드할 수 있습니다.
> >
> > \[60279334]
>
> ### XUserResolveIssueWithUiAsync 흐름
>
> > **문제:**\
> > `XUserResolveIssueWithUiAsync` API는 로그인된 ID를 변경하는 것이 아니라 토큰 또는 동의 문제와 같은 사용자 계정 문제를 해결하기 위한 것입니다. 그러나 원래 계정 A로 로그인한 사용자가 이 흐름을 완료하면서 계정 B로 로그인하여 다른 XUID가 될 수 있습니다.
> >
> > **영향:**\
> > 이 흐름 중에 계정이 변경되면 API가 불일치를 감지하고 작업을 자동으로 실패시킵니다.
> >
> > **적용 대상:**
> >
> > * 2025년 10월 GDK
> > * 2025년 10월 GDK 업데이트 1
> >
> > **지침:**\
> > 계정 변경으로 인해 작업이 실패하는 경우 사용자를 제거한 후 다시 추가하여 올바르게 로그인되도록 하세요.
> >
> > \[59960311]
>
> ### 압축된 저장 데이터 다운로드
>
> > **문제:**\
> > PlayFab Game Saves는 압축되지 않은 크기보다 큰 압축 저장 데이터를 다운로드할 때 문제가 발생할 수 있습니다. 이 문제는 게임이 PlayFab Game Saves 외에 자체 파일 압축을 사용하는 경우에 가장 흔히 발생합니다.
> >
> > **적용 대상:**
> >
> > * 2025년 10월 GDK
> > * 2025년 10월 GDK 업데이트 1
> >
> > **지침:**\
> > 가능하면 추가 파일 압축을 사용하지 않도록 설정하는 것이 좋습니다.
> >
> > **상태:**\
> > 이 문제는 향후 GDK 업데이트에서 수정될 예정입니다.
> >
> > \[60348127]
>
> ### XblTestAccountGui 도구 테스트 계정 오류
>
> > **문제:**\
> > `XblTestAccountGui` 도구에서 테스트 계정 로그인이 실패할 수 있습니다. 이 경우 다음 오류 메시지가 나타납니다.
> >
> > *Live auth error: Login Error: The remote server returned an error: (400) Bad Request.*
> >
> > **적용 대상:**
> >
> > * 2025년 10월 GDK
> > * 2025년 10월 GDK 업데이트 1
> >
> > **상태:**\
> > 이 문제는 XBOX Live 개발자 도구의 최신 GitHub 릴리스에서 수정되었습니다. 해당 도구는 [https://aka.ms/xbltools](https://aka.ms/xbltools)에서 사용할 수 있습니다. 이 수정 사항은 향후 GDK 릴리스에 포함될 예정입니다.
> >
> > \[60428977]
>
> ### XUsers를 추가하기 전에 XGameInviteRegisterForPendingEvent를 호출해야 함
>
> > **문제:**\
> > Steam Deck에서는 `XUsers`를 추가하기 전에 `XGameInviteRegisterForPendingEvent`를 호출해야 합니다. 그렇지 않으면 초대 알림에 제대로 등록되지 않습니다. 이 순서 요구 사항은 의도된 것이 아닙니다.
> >
> > **적용 대상:**\
> > 2025년 10월 GDK 업데이트 1
> >
> > **상태:**\
> > 이 문제는 향후 GDK 릴리스에서 수정될 예정입니다.
> >
> > \[60470935]
>
> ### XGameInviteRegisterForPendingEvent에서 connectionString을 설정해야 함
>
> > **문제:**\
> > Steam Deck에서 `XGameInviteRegisterForPendingEvent`는 XBOX MPA(Multiplayer Activity) `connectionString`이 없는 초대에 대해 타이틀 콜백을 호출하지 않습니다. 초대를 보낼 때는 선택적 필드이지만, `XGameRuntime`은 이 필드가 없는 초대 페이로드를 삭제합니다.
>
> > **적용 대상:**\
> > 2025년 10월 GDK 업데이트 1
> >
> > **해결 방법:**\
> > 초대를 보낼 때 비어 있지 않은 연결 문자열을 제공하세요. 필요하지 않은 경우 받는 쪽에서는 무시하세요.
> >
> > **상태:**\
> > 이 문제는 향후 GDK 릴리스에서 수정될 예정입니다.
> >
> > \[60470935]
>
> ***

## 참조 API 설명서

* [Dstorage(API 콘텐츠)](https://learn.microsoft.com/en-us/gaming/gdk/docs/reference/system/dstorage/dstorage_members)


## Related topics

- [Microsoft Game Development Kit(GDK)의 새로운 기능](https://docs.xbox.com/ko/announcements/gdk/whats-new.md)
- [Microsoft Game Development Kit(GDK)에서 Clang 사용](https://docs.xbox.com/ko/tools/tools-pc/visualstudio/gr-vs-clang.md)
- [콘솔용 Microsoft Game Development Kit(GDK)에서 Clang 사용](https://docs.xbox.com/ko/tools/tools-console/visualstudio/vs-clang.md)
- [Microsoft Game Development Kit(GDK) 개발 리소스 액세스](https://docs.xbox.com/ko/home/onboarding-access/access-resources.md)
- [Microsoft Game Development Kit 샘플](https://docs.xbox.com/ko/home/setup-install/samples.md)
