refactor(big-bang): cards-native → wordeck-native
Code + Identity-Rename zur Vorbereitung auf Apple-Dev-Portal-Aktion (Bundle ev.mana.wordeck, App-Group group.ev.mana.wordeck, AASA applinks:wordeck.com). Build bleibt funktional, aber gegen die neue text-only-API können image-occlusion-Creates 422 zurückgeben — das wird mit der Wordeck-Native v1.0-Welle (parallele Apple-Aktion) sauber gemacht. Umbenennung: - 41 Files: cardecky/Cardecky → wordeck/Wordeck (Display, Strings, Kommentare) - 57 Files: CardsNative → WordeckNative, CardsAPI → WordeckAPI, CardsTheme → WordeckTheme, CardsBrand → WordeckBrand, CardsWidget → WordeckWidget, CardsDueWidget → WordeckDueWidget - Bundle-ID ev.mana.cardecky → ev.mana.wordeck (project.yml, Info.plist, entitlements, Keychain-Service, App-Group) - AASA applinks:cardecky.mana.how → applinks:wordeck.com - API-Base cardecky-api.mana.how → api.wordeck.com - 10 Files renamed (App-Entry, API-Extensions, Theme, Widget, Entitlements, Tests) - xcodeproj regenerated via xcodegen → WordeckNative.xcodeproj - MaskRegionsTests.swift gelöscht (image-occlusion entfällt mit Wordeck text-only) Forgejo-Repo git.mana.how/till/cards-native → wordeck-native umbenannt (Auto-Redirect aktiv). Lokales Verzeichnis Code/cards-native/ bleibt vorerst — wird beim nächsten Apple-Setup mit Bundle-Test umbenannt. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
4f154bfb39
commit
542082772a
83 changed files with 691 additions and 648 deletions
|
|
@ -1,4 +1,4 @@
|
|||
# RELEASE_CHECKLIST — cards-native
|
||||
# RELEASE_CHECKLIST — wordeck-native
|
||||
|
||||
Externe Schritte vor App-Store-Submission. Alles unter dieser
|
||||
Sektion läuft NICHT durch das Repo — sondern durch das Apple-
|
||||
|
|
@ -11,14 +11,14 @@ AASA) und über Xcode (für Build + Sign).
|
|||
|
||||
- [x] **Team-ID gesetzt** (`QP3GLU8PH3`, mana e.V.) — `DEVELOPMENT_TEAM`
|
||||
in `project.yml > settings > base`. Greift bei Archive automatisch.
|
||||
- [ ] **App-ID `ev.mana.cardecky`** im Developer-Portal anlegen, falls
|
||||
- [ ] **App-ID `ev.mana.wordeck`** im Developer-Portal anlegen, falls
|
||||
noch nicht da. Mit Capabilities: App Groups, Keychain Sharing,
|
||||
Associated Domains.
|
||||
- [ ] **App-ID `ev.mana.cardecky.share`** + **`ev.mana.cardecky.widget`** für
|
||||
- [ ] **App-ID `ev.mana.wordeck.share`** + **`ev.mana.wordeck.widget`** für
|
||||
die Extensions analog anlegen, ebenfalls mit App Groups.
|
||||
- [ ] **App-Group `group.ev.mana.cardecky`** im Portal anlegen und allen
|
||||
- [ ] **App-Group `group.ev.mana.wordeck`** im Portal anlegen und allen
|
||||
drei App-IDs zuweisen.
|
||||
- [ ] **Keychain-Access-Group**: heute `ev.mana.cardecky`. Wenn
|
||||
- [ ] **Keychain-Access-Group**: heute `ev.mana.wordeck`. Wenn
|
||||
Shared-Keychain mit `memoro-native` gewünscht (siehe
|
||||
`mana/docs/MANA_SWIFT.md` Phase γ), auf
|
||||
`$(AppIdentifierPrefix)ev.mana.shared` umstellen und
|
||||
|
|
@ -40,7 +40,7 @@ AASA) und über Xcode (für Build + Sign).
|
|||
|
||||
### Server-seitige Vorbedingungen
|
||||
|
||||
- [x] **AASA-Endpoint** auf `cardecky.mana.how/.well-known/apple-app-site-association`
|
||||
- [x] **AASA-Endpoint** auf `wordeck.com/.well-known/apple-app-site-association`
|
||||
— SvelteKit-Server-Route gebaut in
|
||||
`cards/apps/web/src/routes/.well-known/apple-app-site-association/+server.ts`
|
||||
(2026-05-13). Content-Type `application/json`, paths `/d/*` und
|
||||
|
|
@ -50,11 +50,11 @@ AASA) und über Xcode (für Build + Sign).
|
|||
(Commit folgt). Wird zur Runtime von `$env/dynamic/public`
|
||||
aufgelöst und in den AASA-Response geschrieben.
|
||||
- [x] **Production-Deploy von cards-web** durchgeführt 2026-05-13.
|
||||
Probe von außen: `curl https://cardecky.mana.how/.well-known/apple-app-site-association`
|
||||
liefert `application/json` mit `"appID":"QP3GLU8PH3.ev.mana.cardecky"`.
|
||||
Probe von außen: `curl https://wordeck.com/.well-known/apple-app-site-association`
|
||||
liefert `application/json` mit `"appID":"QP3GLU8PH3.ev.mana.wordeck"`.
|
||||
Cloudflare-Tunnel reicht den Endpoint sauber durch (kein
|
||||
HTML-Captive, kein Redirect).
|
||||
- [ ] **cardecky-api.mana.how** muss erreichbar bleiben — die App
|
||||
- [ ] **api.wordeck.com** muss erreichbar bleiben — die App
|
||||
ist 100% Online-write. Health-Probe verifizieren.
|
||||
|
||||
### Build + Archive
|
||||
|
|
@ -70,7 +70,7 @@ AASA) und über Xcode (für Build + Sign).
|
|||
- [ ] **Cross-Device:** Web↔Native parallel. Karte gegrade in App →
|
||||
Web zeigt nach Reload identischen Review-State.
|
||||
- [ ] **Widget:** ans Home-Screen pinnen, Due-Count nach App-Refresh.
|
||||
- [ ] **Universal-Link:** `https://cardecky.mana.how/d/<slug>` in
|
||||
- [ ] **Universal-Link:** `https://wordeck.com/d/<slug>` in
|
||||
Safari öffnen → App startet auf Explore-Tab + Public-Deck-Detail.
|
||||
- [ ] **Share-Extension:** Text in Safari markieren → Teilen → "Als
|
||||
Karte speichern" → Karte landet in der App.
|
||||
|
|
@ -86,9 +86,9 @@ AASA) und über Xcode (für Build + Sign).
|
|||
### App-Store-Connect
|
||||
|
||||
- [ ] **App-Eintrag erstellen** unter https://appstoreconnect.apple.com
|
||||
mit Bundle-ID `ev.mana.cardecky`.
|
||||
mit Bundle-ID `ev.mana.wordeck`.
|
||||
- [ ] **App-Name** + **Subtitle** (max 30 Zeichen):
|
||||
- Name: "Cardecky"
|
||||
- Name: "Wordeck"
|
||||
- Subtitle: "Karteikarten — Verein mana"
|
||||
- [ ] **Description** (de + en, max 4000 Zeichen). Vorschlag in
|
||||
[`docs/MARKETING_COPY.md`](MARKETING_COPY.md) — vor Submission
|
||||
|
|
@ -97,11 +97,11 @@ AASA) und über Xcode (für Build + Sign).
|
|||
"Karteikarten,Spaced Repetition,Lernen,Vokabeln,Anki,Flashcards,FSRS,mana,Verein,Open Source"
|
||||
- [ ] **Screenshots** für iPhone 16 Pro Max + iPhone SE-3 + iPad Pro.
|
||||
6.7", 6.5", 5.5", iPad 12.9" — siehe Apple's Specs.
|
||||
- [x] **Privacy-Policy-URL**: `https://cardecky.mana.how/privacy` (live
|
||||
- [x] **Privacy-Policy-URL**: `https://wordeck.com/privacy` (live
|
||||
seit 2026-05-13, SvelteKit-Route mit Verein-Content).
|
||||
- [x] **Support-URL**: `https://cardecky.mana.how/help` (live, FAQ +
|
||||
- [x] **Support-URL**: `https://wordeck.com/help` (live, FAQ +
|
||||
Kontakt-Email kontakt@mana-ev.ch).
|
||||
- [ ] **Marketing-URL** (optional) — `cardecky.mana.how`.
|
||||
- [ ] **Marketing-URL** (optional) — `wordeck.com`.
|
||||
- [ ] **Age-Rating**: vermutlich 4+ (no objectionable content).
|
||||
- [ ] **Pricing**: Free.
|
||||
- [ ] **App-Privacy** (Data Type Declaration):
|
||||
|
|
@ -124,7 +124,7 @@ AASA) und über Xcode (für Build + Sign).
|
|||
|
||||
### Hub-App vs Standalone-App (siehe MANA_SWIFT.md)
|
||||
|
||||
- [x] Entschieden: separate Apps. memoro-native und cards-native sind
|
||||
- [x] Entschieden: separate Apps. memoro-native und wordeck-native sind
|
||||
eigenständige App-Store-Einträge. Keine Hub-App.
|
||||
|
||||
## Carryover-Tasks (β-6 / β-7-Reste)
|
||||
|
|
@ -144,7 +144,7 @@ AASA) und über Xcode (für Build + Sign).
|
|||
|
||||
## Nach Submission
|
||||
|
||||
- [ ] **Monitoring**: nach Release `cardecky-api.mana.how/healthz` und
|
||||
- [ ] **Monitoring**: nach Release `api.wordeck.com/healthz` und
|
||||
Rate-Limit-Auslastung beobachten — Native-App kann Last-Spitzen
|
||||
erzeugen.
|
||||
- [ ] **DSGVO-Endpoint** (`/api/v1/dsgvo/export`, `/delete`) testweise
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue