- project.yml mit Bundle ev.mana.zitare + Widget + ShareExt-Targets - ManaSwiftCore (ManaCore + ManaTokens) + ManaSwiftUI (ManaAuthUI) als Package-Dependencies via path: - Pure SwiftUI für Native-Surfaces, WKWebView nur für Lese-Tabs (Hybrid-Sonderfall vs cards/memoro/manaspur, dokumentiert im Playbook ZITARE_NATIVE_GREENFIELD.md) - Theme: paper-Variant aus @mana/themes - ZitareAPI.healthCheck via direct URLSession (öffentlicher Endpoint, kein AuthenticatedTransport-Gate) - 6/6 AppConfigTests + 1/1 UI-Smoke grün auf iPhone 16e Simulator - Live: zitare-api.mana.how/healthz → HTTP/2 200 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
30 lines
1.2 KiB
Swift
30 lines
1.2 KiB
Swift
import Foundation
|
|
import ManaCore
|
|
|
|
/// App-spezifische Konfiguration für Zitare. Implementiert
|
|
/// `ManaAppConfig` aus ManaCore und ergänzt die Zitare-eigene
|
|
/// `apiBaseURL` (zitare-api, getrennt von mana-auth) sowie
|
|
/// `webBaseURL` (zitare.com, für WKWebView und Universal-Links)
|
|
/// und `appBaseURL` (zitare.mana.how, für eingeloggte Pfade).
|
|
enum AppConfig {
|
|
static let manaAppConfig: ManaAppConfig = DefaultManaAppConfig(
|
|
authBaseURL: URL(string: "https://auth.mana.how")!,
|
|
keychainService: "ev.mana.zitare",
|
|
keychainAccessGroup: nil
|
|
)
|
|
|
|
/// `zitare-api.mana.how` — API-Backend (Hono+Bun).
|
|
static let apiBaseURL = URL(string: "https://zitare-api.mana.how")!
|
|
|
|
/// `zitare.com` — öffentliches statisches Frontend. Universal-Link-
|
|
/// Domain. WKWebView-Default für Lesen-Surfaces.
|
|
static let webBaseURL = URL(string: "https://zitare.com")!
|
|
|
|
/// `zitare.mana.how` — SPA-Surface für eingeloggte Pfade (Submit,
|
|
/// Edit, Moderation). Bekommt den `mana.access`-Cookie injiziert
|
|
/// für Cookie-SSO.
|
|
static let appBaseURL = URL(string: "https://zitare.mana.how")!
|
|
|
|
/// App-Group für Daten-Sharing zwischen App ↔ Widget ↔ ShareExt.
|
|
static let appGroup = "group.ev.mana.zitare"
|
|
}
|