chore: Rebrand auf ev.mana.cardecky

Apple-Developer-Portal-App-ID lautet ev.mana.cardecky (analog zur
Domain cardecky.mana.how). Alle Bundle-IDs, App-Group, Keychain-
Group, OSLog-Subsysteme, URL-Schemes, Widget-Kind, App-Intent-Phrases,
Marketing-Texte und Doku nachgezogen.

Bundle-IDs neu:
- Main: ev.mana.cardecky
- Widget: ev.mana.cardecky.widget
- Share: ev.mana.cardecky.share
- Tests: ev.mana.cardecky.tests / .uitests

App-Group: group.ev.mana.cardecky
Keychain-Access-Group: $(AppIdentifierPrefix)ev.mana.cardecky
OSLog-Subsystem: ev.mana.cardecky

AASA gleichzeitig in cards-Repo angepasst (Commit 21ec535) und
auf mana-server redeployed — Probe liefert appID
"QP3GLU8PH3.ev.mana.cardecky".

Plus: ShareExtension/Resources/Info.plist + entitlements werden
jetzt analog zu Widget-Resources gitignored (sind XcodeGen-generated).

35 Unit-Tests + 1 UI-Test grün, alle drei Targets bauen.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-05-13 13:29:04 +02:00
parent 468ef291f5
commit 4dfb32ba25
17 changed files with 203 additions and 94 deletions

View file

@ -7,7 +7,7 @@ import ManaCore
enum AppConfig {
static let manaAppConfig: ManaAppConfig = DefaultManaAppConfig(
authBaseURL: URL(string: "https://auth.mana.how")!,
keychainService: "ev.mana.cards",
keychainService: "ev.mana.cardecky",
keychainAccessGroup: nil
)

View file

@ -15,7 +15,7 @@ final class NotificationManager {
}
private(set) var authorization: AuthorizationStatus = .unknown
private let identifier = "ev.mana.cards.dailyReminder"
private let identifier = "ev.mana.cardecky.dailyReminder"
private let store = UserDefaults.standard
/// Persistiert User-Pref. Format: ISO-Stunde:Minute (default 18:00).

View file

@ -18,7 +18,7 @@ struct PendingShare: Codable, Identifiable, Hashable, Sendable {
}
enum PendingShareStore {
static let appGroupID = "group.ev.mana.cards"
static let appGroupID = "group.ev.mana.cardecky"
static let filename = "pending-shares.json"
static var url: URL? {

View file

@ -22,7 +22,7 @@ struct WidgetSnapshot: Codable, Sendable {
/// Liest und schreibt WidgetSnapshot in den shared App-Group-Container.
enum WidgetSnapshotStore {
/// App-Group-ID muss exakt mit dem Entitlement-Eintrag matchen.
static let appGroupID = "group.ev.mana.cards"
static let appGroupID = "group.ev.mana.cardecky"
static let snapshotFilename = "widget-snapshot.json"
static var snapshotURL: URL? {

View file

@ -1,13 +1,13 @@
import Foundation
import OSLog
/// App-eigene OSLog-Logger unter Subsystem `ev.mana.cards`.
/// App-eigene OSLog-Logger unter Subsystem `ev.mana.cardecky`.
/// ManaCore loggt unter `ev.mana.core` parallel siehe
/// `mana-swift-core/Sources/ManaCore/Telemetry/CoreLog.swift`.
enum Log {
static let app = Logger(subsystem: "ev.mana.cards", category: "app")
static let auth = Logger(subsystem: "ev.mana.cards", category: "auth")
static let api = Logger(subsystem: "ev.mana.cards", category: "api")
static let study = Logger(subsystem: "ev.mana.cards", category: "study")
static let sync = Logger(subsystem: "ev.mana.cards", category: "sync")
static let app = Logger(subsystem: "ev.mana.cardecky", category: "app")
static let auth = Logger(subsystem: "ev.mana.cardecky", category: "auth")
static let api = Logger(subsystem: "ev.mana.cardecky", category: "api")
static let study = Logger(subsystem: "ev.mana.cardecky", category: "study")
static let sync = Logger(subsystem: "ev.mana.cardecky", category: "sync")
}