Skip to content

Commit 2f3ccec

Browse files
Lukas Geigerclaude
andcommitted
Initial release v1.0.0
GUI-Tool zur Vorbereitung von Python-Apps fuer den Microsoft Store. Features: Manifest-Generator (AppxManifest.xml), automatische Icon-Generierung aller Store-Groessen (44/50/150/310/Wide), Keyring-Integration fuer Zertifikat-Passwoerter, Screenshot-Assistent (pygetwindow), MSIX-Build via makeappx.exe/signtool.exe, Settings-Persistenz, Auto-Installer fuer fehlende Abhaengigkeiten. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 parents  commit 2f3ccec

6 files changed

Lines changed: 1633 additions & 0 deletions

File tree

.gitignore

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# =============================================================================
2+
# .gitignore Template fuer Software Entwicklung Projekte
3+
# Kopieren und als .gitignore im Projektroot ablegen
4+
# Projektspezifische Eintraege am Ende anfuegen
5+
# =============================================================================
6+
7+
# ---- Python ----
8+
__pycache__/
9+
*.py[cod]
10+
*$py.class
11+
*.egg-info/
12+
*.egg
13+
.eggs/
14+
dist/
15+
build/
16+
17+
# ---- Virtuelle Umgebungen ----
18+
venv/
19+
.venv/
20+
env/
21+
.env/
22+
23+
# ---- BACH Interne Steuerungsdateien (NIEMALS in Git!) ----
24+
AUFGABEN.txt
25+
TEST.txt
26+
TESTS.txt
27+
TESTERGEBNISSE.txt
28+
BUGREPORT.md
29+
DIAGNOSE_REPORT.md
30+
31+
# ---- Persoenliche / Sensible Daten ----
32+
_USER/
33+
.env
34+
.env.*
35+
credentials.json
36+
client_secret*.json
37+
token.json
38+
*.pem
39+
*.key
40+
keyring/
41+
42+
# ---- Build-Artefakte & Releases ----
43+
releases/
44+
*.exe
45+
*.msi
46+
*.msix
47+
*.appx
48+
*.spec
49+
50+
# ---- IDE & Editoren ----
51+
.claude/
52+
.vscode/
53+
.idea/
54+
*.swp
55+
*.swo
56+
*~
57+
58+
# ---- Betriebssystem ----
59+
desktop.ini
60+
Thumbs.db
61+
.DS_Store
62+
ehthumbs.db
63+
64+
# ---- Projektspezifisch ----
65+
settings_store_packager.json
66+
store_package/
67+
*.pfx

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Lukas Geiger
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<p align="center">
2+
<img src="https://img.shields.io/badge/Version-2.3-blue?style=for-the-badge" alt="Version">
3+
<img src="https://img.shields.io/badge/Python-3.10+-yellow?style=for-the-badge" alt="Python">
4+
<img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License">
5+
<img src="https://img.shields.io/badge/Platform-Windows-0078D6?style=for-the-badge" alt="Windows">
6+
<img src="https://img.shields.io/badge/Target-Microsoft%20Store-orange?style=for-the-badge" alt="Microsoft Store">
7+
</p>
8+
9+
<h1 align="center">WinStorePackager</h1>
10+
11+
<h4 align="center">GUI-Tool zur Vorbereitung von Python-Apps fuer den Microsoft Store — Manifest, Icons und MSIX-Paket auf Knopfdruck</h4>
12+
13+
---
14+
15+
## Features
16+
17+
| Feature | Beschreibung |
18+
|---------|-------------|
19+
| **Manifest-Generator** | Erstellt `AppxManifest.xml` automatisch aus Formulareingaben |
20+
| **Icon-Generator** | Alle Store-Pflichtgroessen: 44×44, 50×50, 150×150, 310×310, 310×150 (Wide) |
21+
| **Keyring-Integration** | Sichere Speicherung von Zertifikat-Passwoertern (kein Klartext) |
22+
| **Screenshot-Assistent** | Erstellt App-Screenshots direkt via `pygetwindow` |
23+
| **11 Store-Kategorien** | Vordefiniert (Games, Productivity, Developer Tools, ...) |
24+
| **Altersfreigaben** | 3+ bis 18+ Ratings |
25+
| **MSIX-Build** | Ruft `makeappx.exe` und `signtool.exe` aus dem Windows SDK auf |
26+
| **Settings-Persistenz** | Konfiguration wird in JSON gespeichert und beim naechsten Start geladen |
27+
| **Auto-Install** | Fehlende Abhaengigkeiten werden automatisch nachinstalliert |
28+
29+
---
30+
31+
## Voraussetzungen
32+
33+
- Python 3.10+
34+
- Windows 10/11
35+
- [Windows SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) (fuer `makeappx.exe` und `signtool.exe`)
36+
- Microsoft Store Entwicklerkonto (fuer Submission)
37+
38+
```bash
39+
pip install -r requirements.txt
40+
```
41+
42+
---
43+
44+
## Installation
45+
46+
```bash
47+
git clone https://github.com/lukisch/WinStorePackager.git
48+
cd WinStorePackager
49+
pip install -r requirements.txt
50+
python WindowsStorePublisher_3.py
51+
```
52+
53+
Oder unter Windows per Doppelklick auf `START.bat`.
54+
55+
---
56+
57+
## Erste Schritte
58+
59+
1. **Tool starten**`python WindowsStorePublisher_3.py` oder `START.bat`
60+
2. **App-Daten eintragen** — Name, Publisher-ID, Version, Pfad zur `.py`-Datei
61+
3. **Icon auswaehlen** — das Tool generiert automatisch alle Store-Groessen
62+
4. **Manifest generieren**`AppxManifest.xml` wird erstellt
63+
5. **MSIX bauen** — Tool ruft `makeappx.exe` auf und erstellt das Paket
64+
6. **Signieren** — Zertifikat auswaehlen, Passwort via Keyring sicher eingeben
65+
66+
---
67+
68+
## Konfiguration
69+
70+
Beim ersten Start wird `settings_store_packager.json` erstellt (im `.gitignore` — enthaelt persoenliche Daten). Vorlage:
71+
72+
```json
73+
{
74+
"app_name": "MyApp",
75+
"publisher": "CN=YOUR-PUBLISHER-ID",
76+
"publisher_display": "Your Name",
77+
"version": "1.0.0.0",
78+
"makeappx_path": "C:/Program Files (x86)/Windows Kits/10/App Certification Kit/makeappx.exe",
79+
"signtool_path": "C:/Program Files (x86)/Windows Kits/10/App Certification Kit/signtool.exe"
80+
}
81+
```
82+
83+
Die Publisher-ID findest du im [Microsoft Partner Center](https://partner.microsoft.com/dashboard).
84+
85+
---
86+
87+
## Vergleich mit Alternativen
88+
89+
| Feature | WinStorePackager | MSIX Packaging Tool | Visual Studio | Advanced Installer |
90+
|---------|:---:|:---:|:---:|:---:|
91+
| GUI || ⚠️ |||
92+
| Python-Fokus |||||
93+
| Auto-Icons ||| ⚠️ ||
94+
| Manifest-Template |||||
95+
| Kostenlos ||| ⚠️ ||
96+
| Screenshot-Assistent |||||
97+
| Keyring-Sicherheit |||||
98+
99+
---
100+
101+
## Lizenz
102+
103+
Dieses Projekt steht unter der [MIT License](LICENSE).

START.bat

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
@echo off
2+
cd /d "%~dp0"
3+
python "WindowsStorePublisher_3.py"
4+
pause

0 commit comments

Comments
 (0)