From aba06b34438e66d1e6309d737922f4887f7c47b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=EC=98=81?= Date: Tue, 10 Nov 2026 15:44:00 +0900 Subject: [PATCH] docs: add beginner Microsoft Store publishing manual Closes #8 --- .../microsoft-store/01-developer-account.md | 51 ++++++++ .../microsoft-store/02-app-and-package.md | 102 ++++++++++++++++ .../microsoft-store/03-submit-and-update.md | 111 ++++++++++++++++++ .../microsoft-store/04-troubleshooting.md | 65 ++++++++++ docs/manuals/microsoft-store/README.md | 46 ++++++++ 5 files changed, 375 insertions(+) create mode 100644 docs/manuals/microsoft-store/01-developer-account.md create mode 100644 docs/manuals/microsoft-store/02-app-and-package.md create mode 100644 docs/manuals/microsoft-store/03-submit-and-update.md create mode 100644 docs/manuals/microsoft-store/04-troubleshooting.md create mode 100644 docs/manuals/microsoft-store/README.md diff --git a/docs/manuals/microsoft-store/01-developer-account.md b/docs/manuals/microsoft-store/01-developer-account.md new file mode 100644 index 0000000..4c89e42 --- /dev/null +++ b/docs/manuals/microsoft-store/01-developer-account.md @@ -0,0 +1,51 @@ +# 1. 개발자 계정 만들기 + +[목차](README.md) · 다음: [앱 등록과 패키지 준비](02-app-and-package.md) + +## 1. 계정 종류 선택 + +EG-BIM을 회사 제품으로 배포한다면 **Company(회사)**로 준비한다. 개인의 취미·학습 프로젝트라면 **Individual(개인)**을 검토한다. 회사가 소유할 앱을 직원 개인의 취미 계정으로 먼저 등록하지 않는 것을 권한다. 이는 이 프로젝트의 운영 권장사항이다. + +Microsoft는 개인 계정을 회사 계정으로 전환하는 기능을 제공하지 않는다. 회사 명의 배포가 필요해지면 새 회사 계정을 만들어야 한다. [계정 유형과 가입 안내](https://learn.microsoft.com/en-us/windows/apps/publish/partner-center/open-a-developer-account) + +## 2. 회사 담당자가 먼저 모을 자료 + +| 준비물 | 준비 방법 | +| --- | --- | +| 회사 정식 명칭·주소 | 회사 등록 서류의 표기를 확인한다. 앱 이름과 회사 법적 명칭은 다를 수 있다. | +| 사업체 확인 자료 | D-U-N-S 번호가 있으면 확인한다. 없으면 공식 사업자 등록·법인 등록 등 화면에서 허용하는 서류를 준비한다. | +| 담당자 이메일 | 인증 메일을 받을 실제 담당자의 회사 이메일을 준비한다. | +| 고객 지원 연락처 | 사용자에게 공개할 회사 연락처를 담당 부서와 정한다. | +| 로그인 담당자 | 계정 소유와 담당자 변경을 회사가 관리할 수 있도록 정한다. | + +D-U-N-S는 회사를 식별하는 9자리 번호이며, 한국 사업자등록번호와 다른 값이다. 사업자등록번호를 D-U-N-S 입력칸에 넣지 않는다. 서류로 확인할 경우 최신성·유효기간 조건도 확인한다. 한국 서류의 허용 종류와 번역 요구 여부는 제출 화면/보완 요청을 따른다. [사업체 확인 자료 안내](https://learn.microsoft.com/en-us/windows/apps/publish/store-business-verification-reqs) + +## 3. 회사 계정 가입 순서 + +1. 브라우저에서 [Microsoft Store 개발자 가입](https://storedeveloper.microsoft.com/)을 연다. +2. **Get started / Get started for free**를 누른다. +3. **Company account**를 선택한다. +4. Microsoft 계정 또는 지원되는 회사 Microsoft Entra ID 계정으로 로그인한다. +5. 회사 정보를 입력한다. D-U-N-S 조회 또는 공식 서류 제출 방식으로 확인한다. +6. 담당자·지원 연락처를 입력한다. **인증용 이메일은 회사 도메인과 일치하는 담당자 이메일**을 사용한다. +7. 약관을 확인하고, **Verification summary**에서 검증 진행 상황을 확인한다. +8. 추가 서류 요청이 있으면 해당 화면에서 보완한다. 검증 완료 후 **Publish to Store**로 이동한다. + +새 가입 절차는 **개인·회사 모두 등록비 무료**다. 결제 화면이 나오면 시작 주소를 다시 확인한다. [가입 절차·비용](https://learn.microsoft.com/en-us/windows/apps/publish/partner-center/open-a-developer-account) + +**완료 확인:** Partner Center에서 **Apps & Games(앱 및 게임)**를 열 수 있고, 가입 검증에 미완료 항목이 없어야 한다. + +## 4. 개인 계정을 만드는 경우 + +**Individual developer** 선택 → 개인 Microsoft 계정 로그인 → 신분증·셀피 확인 → 프로필 작성 → **Go to Partner Center dashboard** 순서다. 개인 가입에는 회사/학교 계정을 사용하지 않는다. [개인 가입 안내](https://learn.microsoft.com/en-us/windows/apps/publish/partner-center/open-a-developer-account) + +## 5. 로그인했는데 앱 메뉴가 없을 때 + +- 가입에 사용한 계정과 현재 로그인 계정이 같은지 먼저 확인한다. +- 회사에서 이미 가입했다면 새 계정을 만들기 전에 기존 관리자에게 앱 관리 권한을 확인한다. +- 회사 계정의 소유자 또는 관리자가 **Account settings → User management**에서 역할을 부여해야 할 수 있다. [역할 설정 안내](https://learn.microsoft.com/en-us/windows/apps/publish/partner-center/open-a-developer-account) +- 사업체 검증 문제는 **Account settings → Legal info → Developer**와 가입 검증 화면을 확인한다. 오류 내용을 기록하고 요청된 정보만 수정한다. [검증 상태 확인](https://learn.microsoft.com/en-us/windows/apps/publish/store-business-verification-reqs) + +운영 메모: 로그인 주소, 담당 부서, 계정 종류, 검증 완료일을 회사 내부 관리 문서에 적는다. 비밀번호·신분증·사업체 증빙 원본은 소스 저장소에 넣지 않는다. + +여기까지 끝나면 [2. 앱 등록과 패키지 준비](02-app-and-package.md)로 이동한다. diff --git a/docs/manuals/microsoft-store/02-app-and-package.md b/docs/manuals/microsoft-store/02-app-and-package.md new file mode 100644 index 0000000..14c9653 --- /dev/null +++ b/docs/manuals/microsoft-store/02-app-and-package.md @@ -0,0 +1,102 @@ +# 2. 앱 등록과 패키지 준비 + +[목차](README.md) · 이전: [개발자 계정](01-developer-account.md) · 다음: [제출과 공개](03-submit-and-update.md) + +## 1. 앱 이름 예약하기 + +1. 가입을 완료한 계정으로 [Partner Center](https://partner.microsoft.com/dashboard)에 로그인한다. +2. **Apps & Games → New product**를 연다. +3. **MSIX or PWA app**을 선택한다. 이 매뉴얼은 MSIX 경로다. +4. 원하는 이름을 입력한다. 예: `EG-BIM`. +5. **Check availability**로 사용 가능 여부를 확인한다. +6. 사용 가능한 이름이면 **Reserve product name**을 누른다. + +**완료 확인:** EG-BIM의 **Application overview(앱 개요)** 화면이 나온다. 이름 예약만으로 사용자에게 공개되지는 않는다. [Microsoft 시작 안내](https://learn.microsoft.com/en-us/windows/apps/publish/get-started) + +## 2. Store가 정한 식별 정보 복사하기 + +앱을 연 상태에서 **Product management → Product identity**로 이동한다. 아래 세 값을 복사해 둔다. 예시를 임의로 만들어 입력하지 않는다. + +| Partner Center 항목 | Installer Studio 입력 위치 | +| --- | --- | +| `Package/Identity/Name` | **패키지 설정 → Identity Name** | +| `Package/Identity/Publisher` | **패키지 설정 → Publisher** | +| `Package/Properties/PublisherDisplayName` | **앱 정보 → 게시자 표시명** | + +`Publisher`는 `CN=...` 형태일 수 있으며 게시자 표시명과 다르다. **프로젝트 ID**에는 내부 관리용 `egbim` 등을 사용한다. Store ID나 MSI ProductCode를 프로젝트 ID에 넣을 필요는 없다. Store ID와 Package Family Name은 관리 기록으로 보관한다. [Store 식별 정보](https://learn.microsoft.com/en-us/windows/apps/publish/view-app-identity-details) + +**완료 확인:** 세 값을 복사했으며 원문과 대소문자·공백까지 대조했다. 이 제작기는 자동 Store 연결 기능이 없으므로 사람이 옮겨야 한다. + +## 3. Installer Studio에서 제출 후보 만들기 + +샘플 설정을 보존하려면 파일 탐색기에서 `InstallerProject.isproj`와 같은 폴더의 `InstallerProject.isproj.local.json`을 **별도 작업 폴더**로 복사한다. 이름이 다르면 해당 `.isproj`와 그 이름에 `.local.json`을 붙인 파일을 복사한다. `.work`와 `releases`는 복사할 필요 없다. 상대 소스 경로는 폴더가 바뀌면 달라지므로 아래에서 다시 연결한다. 기존 `.json` 프로젝트는 지원하지 않으므로 해당 샘플만 있다면 새 프로젝트를 만든다. + +1. Installer Studio의 **열기**로 복사한 프로젝트를 연다. +2. **앱 정보**에서 예약한 앱 이름, 게시자 표시명을 입력한다. +3. **파일 구성**에서 실제 배포용 소스 폴더를 연결한다. EG-BIM 예시는 `D:\egbim\repo\14.1\Build`이며, 별도 구성 요소는 실제 위치를 확인한다. +4. **패키지 설정**에서 앞 단계의 Name·Publisher를 붙여넣는다. +5. 패키지 버전을 입력한다. 이 매뉴얼의 예시는 최초 `14.1.0.0`, 다음 업데이트 `14.1.1.0`이다. 실제 제품의 기존 배포 버전과 맞춰 결정한다. +6. 실행 파일과 아키텍처가 맞는지 확인한다. x64 앱에 단순히 arm64를 선택해서 변환할 수는 없다. +7. **레지스트리** 탭에서 필요한 설정을 확인한다. 이전 ISM의 설정이 모두 자동으로 가져와졌다고 가정하지 않는다. +8. **서명**에서 아래 용도 구분에 맞게 선택한다. +9. **검증·빌드**에서 SDK 도구 선택 → 입력 검사 → 빌드 계획 생성 → MSIX 빌드를 차례로 누른다. +10. 완료 화면의 산출물 경로를 기록하고 **결과·보고서 내보내기**로 보관한다. 기본 산출물은 프로젝트 폴더의 `releases\<빌드 ID>\package.msix`다. + +Store 제출용 버전은 마지막 자리를 `0`으로 유지하는 규칙으로 운영한다. Name·Publisher를 유지하고 버전을 올린다. Microsoft의 Windows 10/11 패키지 버전 규칙과 파일 형식 조건을 함께 확인한다. [패키지 요구사항](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/app-package-requirements) + +### 서명 선택은 어떻게 하나요? + +| 목적 | 현재 제작기에서 할 일 | +| --- | --- | +| 내 PC/테스트 PC에서 먼저 설치 | **개발자 서명** 선택 → 현재 Publisher와 일치하는 인증서 생성/선택 → 빌드. 테스트 PC에는 공개 인증서를 별도로 신뢰 등록 | +| Store 업로드 후보 생성 | **미서명**으로 생성할 수 있다. Store 식별 정보를 정확히 넣고, 테스트용 빌드와 별도로 보관 | +| 일반 사용자가 웹에서 직접 설치 | 공인 서명 등 별도 배포 준비 필요. 현재 테스트 인증서를 그대로 일반 사용자 배포에 사용하지 않음 | + +Store용 MSIX에는 유료 CA 인증서 구매가 선행 조건이 아니다. Microsoft가 심사 후 배포 과정에서 패키지를 다시 서명한다. 현재 미서명 파일을 더블클릭해 설치할 수 있다는 의미는 아니다. [서명 선택 안내](https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/code-signing-options) + +**Store 제출물에 PFX, 인증서 개인 키, 테스트 인증서 등록 스크립트를 넣지 않는다.** 내부 테스트 인증서 등록 방법은 [개발자 서명 설명](../../changes/2026-10-23-developer-signing.md)을 따른다. + +## 4. 현재 제작기의 Store 준비 상태 + +2026-10-26 소스 확인 기준이다. 아래는 Microsoft의 제한이 아니라 **우리 프로그램의 구현 상태**다. + +| 항목 | 현재 상태와 해야 할 일 | +| --- | --- | +| MSIX 파일 생성 | 가능. 생성 결과를 Partner Center에서 수동 검사할 수 있음 | +| Name·Publisher·게시자 표시명 입력 | 가능. Store 값을 직접 입력 | +| Store 전용 출력 대상 | 미구현. JSON에서 `distribution`을 `store`로 바꾸면 현재 검증이 거부함 | +| 현재 `direct` 설정 | 일반 MSIX 생성 경로를 뜻함. Store 승인이나 자동 제출을 의미하지 않음 | +| 패키지 언어 | manifest 생성 코드가 `en-us`로 고정됨. 한국어 EG-BIM은 지원 언어 선언을 맞추는 개발 작업 후 다시 생성해야 함 | +| Store 전용 자산·버전·정책 검사 | 미구현. Windows App Certification Kit와 Partner Center에서 추가 확인 | +| 업로드·심사 요청·그룹 관리 | 브라우저에서 수동 진행 | + +개발 담당자 확인 위치: [manifest 생성과 검증 코드](../../../src/crates/package-domain/src/lib.rs), [제작기 사용 설명](../../../src/README.md). + +**한국어 앱을 그대로 제출하기 전에 언어 선언을 보완한다.** 이미 만든 MSIX 내부 파일을 직접 바꾸면 서명·검증 결과가 무효가 될 수 있으므로, 프로젝트/생성 코드를 수정한 후 새로 빌드한다. 이 매뉴얼 작성으로 해당 기능이 구현되지는 않았다. + +## 5. 설치 및 실행 확인 + +EG-BIM 담당자는 테스트 PC에서 다음을 확인하고 결과를 기록한다. + +- 처음 설치한 뒤 시작 메뉴에서 실행되는가? +- 기존 `C:\Program Files\Baron` 설치에 의존하지 않고 실행되는가? +- 사용자 설정·라이선스·문서가 읽히고 저장되는가? +- EgViewer, CAD 연동, 플러그인과 필요한 런타임이 실제로 동작하는가? +- 업데이트 후 사용자 데이터가 유지되는가? +- 기존 EXE 설치본과 함께 있을 때 충돌하거나 잘못된 프로그램이 실행되지 않는가? +- 제거 후 남겨야 하는 사용자 자료가 보존되는가? + +이 목록은 EG-BIM 전환을 위한 프로젝트 점검 항목이다. 현재 샘플의 서명 성공만으로 완료 처리하지 않는다. 기존 EXE 설치본의 제거·데이터 이전도 자동 구현된 상태가 아니다. + +Windows SDK의 **Windows App Certification Kit(WACK)**는 Store 관련 기술 검사를 수행하는 별도 도구다. 없다면 Windows SDK 설치 구성에서 해당 도구를 준비한다. + +1. 위에서 만든 테스트 서명본을 테스트 PC에 설치한다. +2. 시작 메뉴에서 **Windows App Cert Kit**를 검색해 실행한다. +3. **Validate a Windows app**을 선택한다. +4. 설치한 EG-BIM을 선택한다. 목록에 없으면 **My app isn't listed**에서 전체 목록을 확인한다. +5. **Next**로 검사 항목을 확인하고 실행한다. 실패를 피하려고 필요한 검사를 임의로 제외하지 않는다. +6. 완료 시 보고서 저장 폴더를 지정한다. HTML/XML 결과를 열어 실패 항목을 확인한다. + +실패 항목은 개발 담당자가 수정한다. 검사 통과 후에도 Store 심사는 별도로 진행된다. [WACK 사용 설명](https://learn.microsoft.com/en-us/windows/uwp/debug-test-perf/windows-app-certification-kit) + +**완료 확인:** 설치·주요 기능·업데이트 시험 결과와 WACK 보고서가 준비되고, Store 식별 정보 및 언어 설정을 확인했다. 그다음 [3. 제출·심사·공개](03-submit-and-update.md)로 이동한다. diff --git a/docs/manuals/microsoft-store/03-submit-and-update.md b/docs/manuals/microsoft-store/03-submit-and-update.md new file mode 100644 index 0000000..7734f6c --- /dev/null +++ b/docs/manuals/microsoft-store/03-submit-and-update.md @@ -0,0 +1,111 @@ +# 3. 제출·심사·공개·업데이트 + +[목차](README.md) · 이전: [패키지 준비](02-app-and-package.md) · 문제 해결: [오류와 체크리스트](04-troubleshooting.md) + +## 1. 제출에 쓸 자료 준비 + +아래는 EG-BIM 담당자가 모아둘 작업 자료다. 사실과 다른 기능 설명이나 임시 문구는 제거한다. + +| 자료 | 준비 예시 | +| --- | --- | +| 제출 후보 파일 | 검증한 `package.msix` | +| 앱 소개 | 누구를 위한 프로그램인지, 실제 제공하는 기능, 사용에 필요한 라이선스 | +| 실행 화면 | 시작 화면, 실제 작업 화면, 주요 결과 화면 | +| 고객 지원 | 담당 이메일, 지원 웹페이지 | +| 개인정보처리방침 | 개인정보 수집·전송이 있는 경우 실제 공개 URL | +| 심사 안내 | 실행 순서, 샘플 자료, 필요한 외부 프로그램, 테스트용 계정/라이선스 | +| 변경 사항 | 이번 버전에서 추가·수정한 내용 | + +스크린샷은 현재 PC 앱을 직접 실행해 촬영한다. Desktop 기준 PNG, 1366×768 이상, 파일당 50MB 이하로 준비할 수 있다. 설치 프로그램 화면이나 제작기 화면이 아니라 **EG-BIM 사용 화면**을 올린다. 로고는 업로드 칸에 표시된 규격에 맞춘다. [공식 이미지 규격](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/screenshots-and-images) + +## 2. 제출 초안 만들기 + +Partner Center에서 **Apps & Games → 해당 앱 → Application overview → Product release → Start submission**을 연다. 아래 항목을 작성하고 각각 **Save**를 누른다. + +| 화면 | 입력 내용 | +| --- | --- | +| Pricing and availability | 가격, 제공 국가, 공개 대상 | +| Properties | 앱 분류, 회사 연락처, 필요한 개인정보처리방침 URL | +| Age ratings | 연령 등급 설문에 실제 앱 내용대로 답변 | +| Packages | MSIX 업로드 | +| Store listings | 지원 언어별 소개, 스크린샷 등 | +| Submission options | 심사 참고 사항, 공개 시점, 제한된 기능 사용 설명 | + +회사 계정의 연락처, 개인정보 수집·전송 시의 개인정보처리방침 등 필수 항목을 확인한다. 앱 소개와 스크린샷은 최소 한 지원 언어에서 완성해야 한다. 최소 한 장의 스크린샷을 준비하고, 이 프로젝트에서는 기능을 보여주는 4장을 권한다. [제출 항목 안내](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/create-app-submission) + +가격은 제품 판매 정책에 맞춰 결정한다. 기존 EG-BIM 라이선스가 필요한 앱이라면 다운로드 가격과 사용 라이선스 조건을 혼동하지 않도록 소개문에 설명한다. 유료 판매를 선택할 때는 계정에 요구되는 정산·세금 설정도 완료한다. + +## 3. 첫 배포는 비공개 테스트로 시작 + +권장 절차는 **Pricing and availability → Visibility → Audience → Private audience**를 선택하고 테스트 그룹을 만드는 것이다. 대상자의 **개인 Microsoft 계정 이메일**을 등록한다. 회사 개발자 계정을 Entra ID로 만들었더라도, 비공개 앱을 받는 테스트 계정은 개인 Microsoft 계정이어야 한다. + +**Public audience로 제출한 뒤에는 Private audience로 되돌릴 수 없다.** 최초 테스트 단계에서 공개 대상을 먼저 확인한다. 검색에서 숨기는 Discoverability 설정만으로 특정 사람만 설치하도록 제한되는 것은 아니다. [공개 범위 설정](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/visibility-options) + +## 4. MSIX 업로드 + +1. **Packages**를 연다. +2. 파일 선택 또는 끌어놓기로 `package.msix`를 올린다. `.msix` 자체도 지원 형식이다. +3. 업로드와 자동 검사가 끝날 때까지 기다린다. +4. 오류가 있으면 해당 문구를 기록한다. 잘못된 파일을 제거하고 원본 설정을 수정해 다시 빌드한다. +5. 표시된 Name, 버전, 아키텍처, 지원 장치를 확인하고 **Save**한다. + +Microsoft는 `.msixupload`도 권장하지만 현재 제작기는 `.msix`를 생성한다. 확장자만 `.msixupload`로 바꾸지 않는다. 로컬 프로젝트 JSON이나 CER는 패키지 업로드 대상이 아니다. [업로드 가능한 형식과 검사](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/upload-app-packages) + +**완료 확인:** 패키지 검사 오류가 없고 제출 필수 항목이 완료됐다. 파일에 `Validated`가 보여도 섹션 전체는 필수 입력 누락으로 `Incomplete`일 수 있다. [제출 완료 조건](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/create-app-submission) + +## 5. 심사자가 실행할 수 있도록 설명 + +**Submission options → Notes for certification**에 아래 항목을 실제 동작에 맞춰 작성한다. 이 틀은 EG-BIM용 작성 예시이며 완성된 심사 설명문은 아니다. + +```text +앱 목적: [실제 EG-BIM 기능 설명] +실행 방법: 시작 메뉴에서 [실제 이름] 실행 +시험 순서: [샘플 열기 → 기능 실행 → 결과 확인] +필요 환경: [지원 OS, 외부 CAD/런타임 등 실제 필요한 항목] +라이선스/로그인: [필요 여부, 심사용 접근 방법] +runFullTrust 사용 이유: [기존 Win32 실행 구조와 필요한 기능을 구체적으로 설명] +이번 변경: [수정한 내용] +``` + +현재 제작기는 `runFullTrust`를 선언한다. 제한된 기능 설명을 요청받으면 앱에서 왜 필요한지 작성한다. 이것이 관리자 권한의 자동 부여를 의미하지는 않는다. 시험에 로그인이 필요하면 운영 계정 대신 심사용 계정을 마련하고 접근 방법을 심사 메모에 제공한다. [심사 메모와 기능 설명](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/manage-submission-options) + +공개 시점을 직접 정하려면 같은 화면의 Publishing hold 옵션에서 **Publish now를 선택할 때까지 공개하지 않는 항목**을 선택한다. 기본값은 심사 통과 후 공개 진행이므로 최초 제출에서 확인한다. [공개 보류 옵션](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/manage-submission-options) + +## 6. 심사 요청 및 결과 확인 + +1. 앱 개요에서 누락 항목을 확인한다. +2. **Submit for certification**을 누른다. +3. 상태와 알림 이메일을 확인한다. 심사에는 보안·기술·내용 검토가 포함된다. +4. 거절되면 심사 보고서의 실패 항목을 수정하고 다시 제출한다. +5. 통과 후 수동 공개 보류를 선택했다면 **Publish now**로 배포를 시작한다. + +통과·공개까지 걸리는 시간은 심사 상태에 따라 달라진다. 공개 처리 중과 실제 Store 설치 가능 상태를 구분한다. [심사 절차](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/app-certification-process) + +비공개 앱은 Partner Center가 제공하는 **인증이 필요한 비공개 앱 링크**로 테스트한다. 대상 Microsoft 계정으로 Store에 로그인해 설치·실행을 확인한다. 비대상 계정의 접근 제한도 확인한다. [비공개 링크 안내](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/visibility-options) + +## 7. 개발자 → 1차 → 2차 → 일반 사용자 + +최초 제출을 게시한 후 앱 개요의 **Package flights → New package flight**에서 테스트 배포를 만든다. Flight는 특정 그룹에 다른 패키지를 제공하는 기능이다. 테스트 패키지도 심사를 거친다. [Package flights](https://learn.microsoft.com/en-us/windows/apps/publish/package-flights) + +| 단계 | 이 프로젝트의 권장 그룹 | 진행 기준 | +| --- | --- | --- | +| 개발자 | `egbim-dev` | 설치·실행·기본 기능 확인 | +| 1차 테스터 | `egbim-test1` | 주요 업무 시나리오 확인 | +| 2차 테스터 | `egbim-test2` | 실제 작업 환경·업데이트 확인 | +| 사용자 | 일반 제출 | 앞 단계 결과를 확인하고 일반 공개 | + +Flight 생성 시 이름과 테스트 그룹을 지정하고, Packages에 패키지를 추가해 제출한다. 다음 단계에는 검증한 패키지를 복사/선택해 같은 후보를 배포할 수 있다. 여러 Flight에 속한 사용자는 설정한 우선순위의 영향을 받으므로 처음에는 그룹이 겹치지 않게 운영한다. 비공개 앱이라면 상위 Private audience에도 해당 테스터가 포함되어야 한다. [Flight 생성·순위](https://learn.microsoft.com/en-us/windows/apps/publish/package-flights), [비공개 대상과 Flight](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/visibility-options) + +일반 공개할 때는 새 일반 제출에서 검증 패키지를 선택하고 Public audience로 전환한다. **현재 Installer Studio에 이 네 단계 관리 화면은 없으며 Partner Center에서 운영한다.** Cloudflare의 그룹 배포 설정과 자동 연동되지 않는다. + +## 8. 다음 버전 배포 + +이 프로젝트의 반복 작업은 다음과 같다. + +1. 같은 Store 앱의 Name·Publisher를 유지한다. +2. 예를 들어 `14.1.0.0`을 `14.1.1.0`으로 올리고 전체 MSIX를 새로 만든다. +3. 기존 버전에서 업데이트하는 시험을 진행한다. +4. Flight에서 확인한 뒤 같은 앱의 업데이트 제출로 배포한다. 새 제품을 만들지 않는다. +5. 새 설치와 기존 설치의 업데이트 결과를 각각 확인한다. + +문제 버전을 받은 사용자에게 낮은 버전이 자동 설치된다고 가정하지 않는다. 수정 패키지에 더 높은 버전을 부여해 재제출하는 복구 계획을 준비한다. [버전 및 복구 안내](https://learn.microsoft.com/en-us/windows/apps/publish/publish-your-app/msix/app-package-requirements) diff --git a/docs/manuals/microsoft-store/04-troubleshooting.md b/docs/manuals/microsoft-store/04-troubleshooting.md new file mode 100644 index 0000000..1393216 --- /dev/null +++ b/docs/manuals/microsoft-store/04-troubleshooting.md @@ -0,0 +1,65 @@ +# 4. 문제가 생겼을 때와 최종 체크리스트 + +[목차](README.md) + +## 오류를 어디서 해결하나요? + +아래 표는 앞 문서의 확인 순서를 묶은 작업표다. 오류 전문을 보관한 뒤 해당 단계로 돌아간다. + +| 상황 | 먼저 할 일 | 설명 위치 | +| --- | --- | --- | +| 가입 중 결제 화면이 나옴 | 새 가입 시작 주소와 최신 등록 경로 확인 | [계정 만들기](01-developer-account.md) | +| 회사 계정 검증이 끝나지 않음 | 검증 화면의 추가 서류·이메일 요청 확인 | [계정 만들기](01-developer-account.md) | +| Apps & Games가 안 보임 | 로그인 계정과 회사 역할 확인 | [계정 만들기](01-developer-account.md) | +| 앱 이름을 예약할 수 없음 | 사용 가능 여부 확인 후 다른 이름 검토 | [앱 이름 예약](02-app-and-package.md) | +| Identity/Publisher 불일치 | Product identity에서 다시 복사해 새 빌드 | [식별 정보 입력](02-app-and-package.md) | +| 로컬 설치에서 인증서 신뢰 오류 | 테스트용 서명 및 해당 PC의 공개 인증서 등록 확인 | [개발자 서명](../../changes/2026-10-23-developer-signing.md) | +| 제작기에서 Store 대상 미지원 | 현재 전용 대상 미구현. JSON 값을 바꿔 해결하지 않음 | [제작기 범위](02-app-and-package.md#4-현재-제작기의-store-준비-상태) | +| 한국어 앱인데 en-us로 표시됨 | manifest 언어 설정 보완 후 재생성 | [제작기 범위](02-app-and-package.md#4-현재-제작기의-store-준비-상태) | +| 업로드 후 Incomplete | 패키지 오류와 섹션 필수 항목을 모두 확인 | [패키지 업로드](03-submit-and-update.md) | +| 테스트 그룹인데 설치할 수 없음 | 개인 Microsoft 계정 이메일, Private audience, 링크 확인 | [비공개 테스트](03-submit-and-update.md) | +| 설치는 되지만 EG-BIM 실행 실패 | 런타임, 경로, 라이선스, 레지스트리, 외부 연동 시험 | [설치 및 실행 확인](02-app-and-package.md) | +| 심사자가 앱을 시험하지 못함 | 심사 보고서와 Notes for certification 보완 | [심사 요청](03-submit-and-update.md) | + +계정 문제를 문의할 때는 계정 종류, 발생 단계, 오류 문구, 발생 시간을 준비한다. Microsoft의 지원 창구는 [Store 시작 FAQ](https://learn.microsoft.com/en-us/windows/apps/publish/faq/get-started-with-the-microsoft-store)를 참고한다. 개인 인증자료나 계정 비밀번호는 이 저장소에 첨부하지 않는다. + +## 제출 담당자 체크리스트 + +이 목록은 EG-BIM의 작업 확인용이다. 모든 항목을 체크해도 Microsoft의 승인 자체를 보장하는 것은 아니다. + +- [ ] 올바른 회사/개인 계정으로 가입했고 검증을 완료했다. +- [ ] 담당자 변경 시 계정을 관리할 회사 내부 절차가 있다. +- [ ] 앱 이름을 예약하고 세 가지 Store 식별 정보를 기록했다. +- [ ] 패키지의 Name·Publisher·게시자 표시명이 Store 값과 같다. +- [ ] 샘플 이름·임시 로고·임시 소개를 실제 제품 정보로 교체했다. +- [ ] 실제 지원 언어와 manifest 언어 선언을 맞췄다. +- [ ] 신규 설치·주요 기능·기존 버전 업데이트를 시험했다. +- [ ] 기존 EXE 설치본과 사용자 데이터 처리 방식을 확인했다. +- [ ] WACK 보고서와 빌드 결과를 보관했다. +- [ ] 패키지와 소개문이 같은 제품·버전을 설명한다. +- [ ] 개인정보처리방침, 지원 연락처, 라이선스 조건을 확인했다. +- [ ] 심사자가 기능을 실행할 수 있는 안내를 준비했다. +- [ ] 최초 공개 대상과 공개 시점을 확인했다. +- [ ] Store에서 실제 설치·업데이트 결과를 확인할 담당자를 정했다. + +## 배포 기록 양식 + +아래 내용을 회사 내부 배포 기록에 복사한다. 실제 계정 정보나 승인 여부를 대신 작성한 것은 아니다. + +```text +제품명: +담당자: +Store ID: +Identity Name: +Publisher: +PublisherDisplayName: +패키지 버전 / 아키텍처: +제작기 빌드 ID / 산출물 경로 / SHA-256: +설치·업데이트 시험 기록: +WACK 보고서 위치: +제출 날짜 / 제출 번호: +대상 그룹 / 공개 범위: +심사 결과 / 보완 사항: +실제 공개 날짜: +Store 설치·업데이트 확인 결과: +``` diff --git a/docs/manuals/microsoft-store/README.md b/docs/manuals/microsoft-store/README.md new file mode 100644 index 0000000..89960c8 --- /dev/null +++ b/docs/manuals/microsoft-store/README.md @@ -0,0 +1,46 @@ +# 처음 시작하는 Microsoft Store 배포 + +대상: EG-BIM 같은 Windows 데스크톱 프로그램을 **MSIX 파일로 Microsoft Store에 올리려는 담당자**. + +확인일: **2026-10-26, 한국 시간**. 웹 화면은 계정·언어·개편에 따라 달라질 수 있어 영문 메뉴명도 함께 적었다. 실제 계정 생성이나 Store 제출을 수행한 기록이 아니라, Microsoft 공식 안내와 현재 Installer Studio 코드를 확인해 작성한 매뉴얼이다. + +## 어디부터 시작하나요? + +아래 문서를 순서대로 따라간다. 처음에는 1번의 계정 준비와 2번의 앱 이름 예약까지만 해도 된다. 프로그램이 완성되기 전에 준비할 수 있다. + +| 순서 | 따라 할 문서 | 끝나면 준비되는 것 | +| --- | --- | --- | +| 1 | [개발자 계정 만들기](01-developer-account.md) | 회사 또는 개인 개발자 계정 | +| 2 | [앱 등록과 패키지 준비](02-app-and-package.md) | Store 식별 정보, 테스트 및 제출 후보 MSIX | +| 3 | [제출·심사·공개·업데이트](03-submit-and-update.md) | 비공개 테스트부터 일반 사용자 공개까지의 절차 | +| 4 | [문제가 생겼을 때와 최종 체크리스트](04-troubleshooting.md) | 오류별 확인 위치, 제출 전 점검표 | + +전체 흐름: + +```text +개발자 계정 만들기 → 앱 이름 예약 → Store 식별 정보 복사 +→ Installer Studio 설정 → 패키지 생성·설치 시험 +→ Partner Center에 업로드 → 심사 → 테스트 그룹 배포 → 일반 공개 +``` + +## 이름이 비슷해서 헷갈리는 것 + +| 용어 | 쉬운 설명 | +| --- | --- | +| Microsoft 계정 | Microsoft 서비스에 로그인하는 계정 | +| 개발자 계정 | Store에 앱을 올릴 수 있도록 등록·검증된 게시자 계정 | +| Partner Center | 앱 등록, 제출, 심사 결과를 관리하는 웹사이트 | +| Installer Studio | 이 저장소에서 개발 중인 설치 패키지 제작 프로그램 | +| MSIX | 배포할 프로그램 파일과 설치 정보를 담은 패키지 | +| 제출(Submission) | 패키지와 소개 자료를 묶어 심사를 요청하는 한 차례 작업 | +| 인증서 | 패키지 서명에 사용하는 파일/저장소 정보. 개발자 계정과 별개 | + +Store의 MSIX 배포에서는 Microsoft가 패키지 호스팅과 배포 서명을 처리한다. 이 경로를 시작하기 위해 Cloudflare 업로드나 유료 코드 서명 인증서 구매를 먼저 할 필요는 없다. 자체 웹사이트 배포는 별도 경로다. [배포 방식 안내](https://learn.microsoft.com/en-us/windows/apps/package-and-deploy/choose-distribution-path) + +## 현재 프로그램으로 할 수 있는 범위 + +Installer Studio는 파일·레지스트리 설정, Identity 입력, MSIX 생성, 테스트용 자체 서명을 지원한다. **Store 계정 연결, 자동 업로드, Store 전용 사전 검사는 아직 없다.** 이 매뉴얼의 웹 작업은 브라우저의 Partner Center에서 직접 한다. + +현재 코드에는 Store 제출 전에 보완할 부분도 있다. 특히 패키지 언어가 `en-us`로 고정되어 있으며 한국어 앱에 맞춘 설정이 필요하다. [2번 문서의 현재 구현 확인](02-app-and-package.md#4-현재-제작기의-store-준비-상태)을 먼저 읽는다. 패키지 생성 성공을 Store 심사 통과로 간주하지 않는다. + +관련 자료: [기존 Store 배포 설계](../../plan/05-microsoft-store.md), [개발자 서명 사용 방법](../../changes/2026-10-23-developer-signing.md).