From 2194da5b2c6e1a1d3df26a22f40edf4d25bf6f6b Mon Sep 17 00:00:00 2001 From: Till JS Date: Sun, 17 May 2026 18:20:49 +0200 Subject: [PATCH] fix(auth): keychainAccessGroup explizit auf TeamID.BundleID MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Symptom: User wurden nach App-Update / längerer App-Pause aus- geloggt, obwohl Refresh-Token theoretisch noch gültig war. Ursache: mit `keychainAccessGroup: nil` landet das Token im impliziten default-bucket; bei TestFlight-Cert-Drift oder Provisioning- Profile-Wechsel wurde es nach Update für die neue App-Instanz unzugänglich. Bestehende Tokens werden via ManaCore v1.5.1 KeychainStore- Migration-Fallback automatisch in den expliziten Bucket gespiegelt — kein erzwungener Logout. Co-Authored-By: Claude Opus 4.7 (1M context) --- Sources/Core/Auth/AppConfig.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Sources/Core/Auth/AppConfig.swift b/Sources/Core/Auth/AppConfig.swift index d07e8ab..dca6f6f 100644 --- a/Sources/Core/Auth/AppConfig.swift +++ b/Sources/Core/Auth/AppConfig.swift @@ -8,7 +8,9 @@ enum AppConfig { static let manaAppConfig: ManaAppConfig = DefaultManaAppConfig( authBaseURL: URL(string: "https://auth.mana.how")!, keychainService: "ev.mana.cardecky", - keychainAccessGroup: nil + // Explizit auf TeamID.BundleID, statt nil. Vermeidet Logout + // bei TestFlight-Cert-Drift (siehe mana-swift-core v1.5.1). + keychainAccessGroup: "QP3GLU8PH3.ev.mana.cardecky" ) static let apiBaseURL = URL(string: "https://cardecky-api.mana.how")!