스토어 함정 #1: 앱 종속성이 시작 메뉴에 유령 항목을 만들었다
2026-05-28
태그:Windows · MSIX · Microsoft Store · 스토어 함정
Windows 앱을 Microsoft Store에 게시하는 게 항상 순탄하지만은 않습니다. 이 시리즈에서는 제가 직접 겪은 Store 함정들을 하나씩, 짧고 실용적으로 정리합니다.
첫 번째 이야기입니다.
배경
RDP Heartbeat는 처음에 Python + Tkinter 도구였습니다 — RDP 세션이 살아 있는지 한눈에 알려주는 작은 호흡 도트였죠. 작동은 했지만, Python 데스크톱 앱을 Microsoft Store용으로 패키징하는 건 한편의 대장정이었습니다: Python 소스 → PyInstaller exe → Inno Setup 설치 프로그램 → MSIX 패키지. 그 과정을 글로 남겼습니다.
그래서 WinUI 3와 Windows App SDK 2.0.1을 사용해 처음부터 다시 작성했습니다. 네이티브 경로는 순조로울 터였습니다 — 더 이상 Python 패키징의 곡예는 필요 없다고 생각했죠. 그리고 Store 인증 전까지는 실제로 그랬습니다.
"필수 수정 조건부 통과"
인증 결과가 돌아왔습니다:
Status: Pass with required fix
10.1.1.11 On Device Tiles: Your submission installs multiple components to the device. Please make sure the additional installed components that are visible in the Start Menu have a unique name that clearly identifies which item is the main product.
통과 — 하지만 경고가 있었습니다. 시작 메뉴에 무언가 추가로 나타났고, 그것은 제 앱이 아니었습니다.
유령 항목
인증 보고서에서 시작 메뉴에 무언가 추가로 나타났다고 했습니다. 확인해 보았습니다 — 솔직히, 특별한 것은 없었습니다. 시작 메뉴는 예상대로였고, 추가 타일은 없었습니다.
프로젝트 전체를 검토했습니다: 패키지 매니페스트를 확인하고, 빌드 출력을 살펴보고, 다른 Store 앱들과 비교했습니다. 추가 패키지도, 의심스러운 확장도, 눈에 띄는 것은 아무것도 없었습니다.
하지만 한 가지 차이가 있었습니다. 다른 앱들 — EnvStudio, GhostWin, QuickGUID — 은 모두 Windows App SDK 1.8.x를 사용합니다. RDP Heartbeat만이 SDK 2.0.1을 사용하는 유일한 앱입니다. 바뀐 유일한 변수입니다.
WinUI 3 앱은 Windows App SDK 런타임에 종속되며, 이 런타임은 공유 시스템 종속성으로 설치되는 MSIX 패키지로 배포됩니다. 내가 지목할 수 있는 유일한 용의자는 SDK 2.x 런타임입니다 — 어떤 이유에서인지 Microsoft의 테스트 환경에서는(하지만 내 컴퓨터에서는 아닙니다) 배포 시 시작 메뉴 타일이 보이게 됩니다. 정확히 왜 그런지는 모르겠습니다.
어떻게 해결할 수 있나요?
답답한 부분은 이겁니다: 직접 수정할 수 없습니다. 런타임 패키지는 Microsoft가 작성한 것입니다 — 시작 메뉴에 어떻게 나타나는지 제어할 수 없습니다.
실질적인 선택지:
- 수용하고 문서화하기 — Store 제출 시 추가 타일이 Microsoft 제공 런타임 종속성이며 별도 제품이 아님을 설명하는 메모를 추가합니다. 저는 이렇게 했고, 인증을 통과했습니다.
- 자체 포함 배포로 전환하기 —
.csproj에<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>를 설정하여 런타임을 앱 패키지에 직접 포함시킵니다. 이렇게 하면 DEPN이 완전히 제거되지만, 아키텍처당 다운로드 크기가 약 40MB 증가합니다.
교훈
Windows App SDK 2.x로 Microsoft Store용 앱을 개발 중이라면:
- 런타임 종속성이 시작 메뉴에 보이는 타일을 만들 수 있다는 점을 인지하세요
- 이것은 2.x 런타임의 부작용이며, 앱의 버그가 아닙니다
- 인증 지연을 피하려면 제출 메모에 이를 문서화하세요
- 유령 항목이 허용할 수 없다면, 자체 포함 배포가 가장 깔끔한 해결책입니다
스토어 함정 시리즈의 일부입니다.