Migriert die App auf die kanonische shared Keychain-Group `ManaSharedKeychainGroup` aus mana-swift-core. Alle nativen mana-e.V.-Apps (memoro, wordeck, nutriphi, herbatrium, zitare, seepuls, viadocu, manameme, werdrobe, pageta, comicello, moodlit) teilen damit ihren Auth-Token auf demselben Device — ein Login in einer App, alle anderen starten direkt im .signedIn-Status. Wichtig: für echtes Cross-App-Sharing müssen sowohl `keychainService` als auch `keychainAccessGroup` identisch sein (Keychain-Lookup-Tupel `(service, account, accessGroup)`) — beide jetzt auf `ManaSharedKeychainGroup`. Bestehender App-eigener Bucket (`ev.mana.<app>`) wird beim ersten Login mit dem neuen Token überschrieben; User in TestFlight-Apps brauchen einen Re-Login. Voraussetzung Apple-Dev-Portal (Tills manueller Schritt): - Capability "Keychain Sharing" für die App ID aktivieren - Group `ev.mana.session` hinzufügen - Provisioning-Profile neu downloaden (Xcode auto) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
20 lines
851 B
Swift
20 lines
851 B
Swift
import Foundation
|
|
import ManaCore
|
|
|
|
/// App-spezifische Konfiguration für Cards. Implementiert `ManaAppConfig`
|
|
/// aus ManaCore und ergänzt die Cards-eigene `apiBaseURL` (wordeck-api,
|
|
/// getrennt von mana-auth).
|
|
enum AppConfig {
|
|
static let manaAppConfig: ManaAppConfig = DefaultManaAppConfig(
|
|
authBaseURL: URL(string: "https://auth.mana.how")!,
|
|
keychainService: ManaSharedKeychainGroup,
|
|
// Explizit auf TeamID.BundleID, statt nil. Vermeidet Logout
|
|
// bei TestFlight-Cert-Drift (siehe mana-swift-core v1.5.1).
|
|
keychainAccessGroup: ManaSharedKeychainGroup,
|
|
// Single-Source fuer den App-Group-String (App-Hülle + Widget
|
|
// + ShareExt-Entitlement spiegeln das hardcoded).
|
|
appGroup: "group.ev.mana.wordeck"
|
|
)
|
|
|
|
static let apiBaseURL = URL(string: "https://api.wordeck.com")!
|
|
}
|