Triage unter Xcode 26.3: macOS + iOS-Device/Archive bauen sauber, das MLX-Macro wird fürs Host-Target gebaut. TestFlight ist nicht blockiert. Nur der iOS-Simulator-Build bricht (arm64 Host/Sim-Arch-Kollision) — betrifft nur den lokalen Dev-Loop, kein Dep-Pin nötig. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
70 lines
2.8 KiB
Markdown
70 lines
2.8 KiB
Markdown
# pageta-native
|
|
|
|
Native SwiftUI Universal-App (iOS + iPadOS + macOS) für **Pageta**,
|
|
die Reader-App des Vereins mana e.V.
|
|
|
|
Bundle: `ev.mana.pageta` · Team: `QP3GLU8PH3` · Backend:
|
|
`api.pageta.com` · Auth: `auth.mana.how`.
|
|
|
|
## Status
|
|
|
|
**Feature-komplett (π-0..π-9 + π-11), TestFlight offen.** Voll
|
|
ausgebaute Universal-App: Feed, Lese-Liste, nativer Reader mit
|
|
Highlights/Notizen, Markierungen-Tab, Recherche, Konto (inkl. In-App-
|
|
Account-Löschung), ShareExtension + Widget. Local-first über
|
|
Event-Sourcing (`sync2.mana.how`), Feed/Extract-Preview HTTP-only.
|
|
|
|
**Build-Stand (2026-05-29, Xcode 26.3):** macOS ✅, iOS Device/Archive
|
|
✅ — **TestFlight nicht blockiert**. Nur der iOS-**Simulator**-Build ist
|
|
gebrochen (simulator-spezifische MLX-Macro-Arch-Kollision auf Apple
|
|
Silicon → auf Device/„My Mac" entwickeln). Details in
|
|
[`STATUS.md`](STATUS.md). Offen bleibt π-10 (ASC + TestFlight-Upload).
|
|
|
|
Vollständiger Plan + Phasen-Historie: [`STATUS.md`](STATUS.md) ·
|
|
[`mana/docs/playbooks/PAGETA_NATIVE_GREENFIELD.md`](../mana/docs/playbooks/PAGETA_NATIVE_GREENFIELD.md).
|
|
|
|
## Lokal entwickeln
|
|
|
|
Voraussetzungen:
|
|
- Xcode 16+
|
|
- `mana-swift-core` + `mana-swift-ui` als Schwester-Repos
|
|
ausgecheckt unter `../mana-swift-core` und `../mana-swift-ui`
|
|
- Apple-Developer-Account mit Team `QP3GLU8PH3`-Mitgliedschaft
|
|
- XcodeGen (`brew install xcodegen`)
|
|
|
|
```bash
|
|
./scripts/xcodegen # → PagetaNative.xcodeproj (mit macOS-Share-Patch)
|
|
./scripts/build-icon.sh # → AppIcon-PNGs (1024+512) aus SVG
|
|
open PagetaNative.xcodeproj
|
|
# Cmd+R im Simulator (iOS oder macOS)
|
|
```
|
|
|
|
Der `scripts/xcodegen`-Wrapper umgeht einen XcodeGen-Bug, durch den
|
|
`platformFilter: macOS` fälschlich als `maccatalyst` in die pbxproj
|
|
geschrieben wird. Ohne den Patch wird die macOS-Share-Extension nicht
|
|
ins App-Bundle embeddet.
|
|
|
|
Icon-Regeneration ist nur nötig wenn sich das SVG in
|
|
`../pageta/apps/web/static/icon-512.svg` ändert. Das Script nimmt
|
|
`rsvg-convert` (Homebrew librsvg) wenn vorhanden, sonst `qlmanage`
|
|
(macOS built-in Fallback).
|
|
|
|
## Apple-Dev-Portal-Pre-Conditions
|
|
|
|
Vor erstem TestFlight-Build registrieren:
|
|
|
|
- Bundle-IDs:
|
|
- `ev.mana.pageta` (Main App)
|
|
- `ev.mana.pageta.widget` (kommt mit π-7)
|
|
- `ev.mana.pageta.share` (kommt mit π-6)
|
|
- App-Group `group.ev.mana.pageta`
|
|
- Capabilities: Associated Domains, App Groups, Keychain Sharing
|
|
|
|
## Cross-Repo-Doks
|
|
|
|
- [`../mana/docs/playbooks/PAGETA_NATIVE_GREENFIELD.md`](../mana/docs/playbooks/PAGETA_NATIVE_GREENFIELD.md) — Plan + Phasen π-0…π-10
|
|
- [`../mana/docs/MANA_SWIFT.md`](../mana/docs/MANA_SWIFT.md) — Native-Koordination
|
|
- [`../mana-swift-core/CLAUDE.md`](../mana-swift-core/CLAUDE.md) — ManaCore + ManaTokens
|
|
- [`../mana-swift-ui/CLAUDE.md`](../mana-swift-ui/CLAUDE.md) — ManaAuthUI
|
|
- [`../pageta/CLAUDE.md`](../pageta/CLAUDE.md) — Web-App + API
|
|
- [`../pageta/STATUS.md`](../pageta/STATUS.md) — Web-Stand
|