- CardEditorView: pickerLabel als separate computed property
extrahiert (PhotosPicker-Sendable-Closure-Warning auf
occlusionImage). Warning bleibt cosmetisch auf der neuen Property,
Swift-6-Strict-Edge-Case mit SwiftUI ViewBuilders.
- AppIcon.appiconset/Contents.json: mac-Idiom-Slot entfernt
(iOS-only erstmal — macOS-Support kommt mit eigenem Icon-Satz).
Behebt "unassigned child"-Warnings.
- RELEASE_CHECKLIST: /privacy + /help URLs als done markiert
(live deployed in cards-Repo Commit c6488c0).
Archive verifiziert: ARCHIVE SUCCEEDED, drei Provisioning Profiles
(ev.mana.cardecky + .widget + .share) automatisch geholt und gesigned.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Apple-Developer-Team-ID des Vereins ist gesetzt. Greift bei Xcode-
Archive automatisch — Provisioning-Profile holt Xcode beim ersten
Sign-Versuch selbst, wenn die App-IDs (ev.mana.cards,
ev.mana.cards.widget, ev.mana.cards.share) im Developer-Portal
existieren.
RELEASE_CHECKLIST aktualisiert: Team-ID + AASA-Compose-Eintrag als
done markiert, Production-Deploy-Schritt für cards-web hinzu.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Der AASA-Endpoint auf cardecky.mana.how ist in
cards/apps/web/src/routes/.well-known/apple-app-site-association/+server.ts
gebaut (Commit bdce9c98 im cards-Repo). Produktion braucht jetzt nur
noch die echte PUBLIC_APPLE_TEAM_ID als Env-Var + Deploy.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Feature-komplett für TestFlight. App-Icon-Platzhalter, Siri-Shortcut,
Share-Extension, Release-Checklist mit allen externen Apple-Schritten.
- scripts/make-appicon.swift: CoreGraphics-basierter Generator für
1024×1024 forest-green PNG mit "C"-Letter und Karten-Stack-Schatten
- Asset-Catalog auf Single-Size-AppIcon-Pattern umgestellt
- StudyCardsIntent + CardsAppShortcuts (App Intents): Siri-
Shortcut "Karten lernen mit Cards" / "Mit Cards lernen"
- CardsShareExtension Target: ShareViewController (UIKit-Bootstrap +
SwiftUI-Hosting), ShareEditorView mit Text-Edit
- PendingShare + PendingShareStore shared in App-Group
group.ev.mana.cards
- DeckListView zeigt PendingShare-Banner; Tap navigiert zu
PendingShareConsumeView mit Deck-Picker + Front/Back-Felder, Submit
→ POST /cards, danach store.remove
- Info.plist: NSPhotoLibraryUsageDescription für Image-Occlusion-
Picker, NSUserActivityTypes für Universal-Links
- docs/RELEASE_CHECKLIST.md mit externen Schritten: Apple-Developer-
Portal, App-IDs, App-Group, AASA, Xcode-Archive, TestFlight-Plan,
App-Store-Connect-Felder, Compliance-Verifikation
- UI-Test robuster (akzeptiert Login oder Decks/Entdecken als
Launch-Erfolg, unabhängig vom Simulator-Keychain-State)
- 35 Tests + 1 UI-Test grün, alle drei Targets bauen
App-Store-Submission selbst ist externe Aktion und passiert nicht
durch dieses Repo — Schritte in docs/RELEASE_CHECKLIST.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>