Commit graph

2 commits

Author SHA1 Message Date
Till JS
573c93c104 fix(auth): ManaSharedKeychainGroup mit explizitem Team-ID-Prefix
Bug: Sec-Framework gibt -34018 (errSecMissingEntitlement) beim
ersten Keychain-Write — auf iPhone UND Mac, in werdrobe + nutriphi
+ vermutlich allen 12 Apps mit der heutigen Migration.

Root-Cause: Apple's `Security.framework` macht einen exakten
String-Match zwischen `kSecAttrAccessGroup` (was Swift übergibt)
und dem `keychain-access-groups`-Entitlement des Bundles (das
`$(AppIdentifierPrefix)` zur Build-Zeit auf den Team-Prefix
expandiert).

- Bundle-Entitlement: "QP3GLU8PH3.ev.mana.session" (mit Prefix)
- Swift-Code: "ev.mana.session" (ohne Prefix)
- → no match → -34018

Vor meiner Migration hatten die Apps explizit "QP3GLU8PH3.
ev.mana.<app>" als String (mit Prefix), beobachtbar im alten
herbatrium/wordeck/nutriphi-AppConfig. Mein Migrations-Skript hat
das Prefix wegrationalisiert ohne zu prüfen.

Fix: `ManaSharedKeychainGroup` = "QP3GLU8PH3.ev.mana.session"
hardcoded. Plus `ManaSharedKeychainGroupSuffix` = "ev.mana.session"
für Konstantanbedarf in Entitlement-Files (wo
$(AppIdentifierPrefix) zur Build-Zeit vorgestellt wird).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 22:09:45 +02:00
Till JS
d4cff490c4 feat(auth): ManaSharedKeychainGroup für Cross-App-SSO
Kanonische String-Konstante "ev.mana.session", die jede mana-e.V.-
App in ihre `AppConfig.keychainAccessGroup` füttern kann. Apps mit
diesem Wert + dem entsprechenden `keychain-access-groups` Entitlement
+ Apple-Dev-Portal-Capability "Keychain Sharing" teilen Auth-Tokens
auf demselben Device — ein Login in einer App genügt, alle anderen
starten direkt im .signedIn-Status.

Wert kann eigene Apps weiterhin opt-out: `keychainAccessGroup: nil`
plus kein Entitlement-Eintrag → impliziter App-Default-Keychain.

CHANGELOG offen — bump auf v1.7.0 sobald mindestens eine App den
neuen Wert konsumiert (folgt im selben Sprint).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 16:12:32 +02:00