fix: User-facing Strings Cards → Cardecky komplett, Build 3
User-facing Rebrand:
- LoginView Heading (war schon in v0.8.5)
- NotificationManager.title (war schon in v0.8.5)
- ShareEditorView Footer-Text: "...in der Cards-App" → "...in der Cardecky-App"
- StudyAppIntents Description: "Öffnet Cards" → "Öffnet Cardecky"
- Localizable.xcstrings: "Cards" key → "Cardecky"
- NSPhotoLibraryUsageDescription: "Cards greift..." → "Cardecky greift..."
- Log.app.info("Cards starting") → "Cardecky starting"
- MARKETING_COPY.md: alle "Cards"-Treffer in DE + EN auf Cardecky
- RELEASE_CHECKLIST: App-Name "Cards" → "Cardecky"
Build-Nummer 2 → 3 (Apple lehnt doppelte Build-Nummern ab, Code-
Hash hat sich geändert).
Code-Identifier bleiben: CardsAPI, CardsTheme, CardsNativeApp,
CardsWidgetExtension, CardsShareExtension — interne Symbol-Namen,
nicht user-facing.
Archive verifiziert: CFBundleDisplayName=Cardecky, Build=3.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2eb7f61f9c
commit
b5edf5cf2e
7 changed files with 19 additions and 19 deletions
|
|
@ -39,7 +39,7 @@ struct ShareEditorView: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Section {
|
Section {
|
||||||
Text("Wähle das Ziel-Deck in der Cards-App.")
|
Text("Wähle das Ziel-Deck in der Cardecky-App.")
|
||||||
.font(.caption)
|
.font(.caption)
|
||||||
.foregroundStyle(.secondary)
|
.foregroundStyle(.secondary)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ struct CardsNativeApp: App {
|
||||||
auth.bootstrap()
|
auth.bootstrap()
|
||||||
_auth = State(initialValue: auth)
|
_auth = State(initialValue: auth)
|
||||||
mediaCache = MediaCache(api: CardsAPI(auth: auth))
|
mediaCache = MediaCache(api: CardsAPI(auth: auth))
|
||||||
Log.app.info("Cards starting — auth status: \(String(describing: auth.status), privacy: .public)")
|
Log.app.info("Cardecky starting — auth status: \(String(describing: auth.status), privacy: .public)")
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some Scene {
|
var body: some Scene {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ import SwiftUI
|
||||||
struct StudyCardsIntent: AppIntent {
|
struct StudyCardsIntent: AppIntent {
|
||||||
static let title: LocalizedStringResource = "Karten lernen"
|
static let title: LocalizedStringResource = "Karten lernen"
|
||||||
static let description = IntentDescription(
|
static let description = IntentDescription(
|
||||||
"Öffnet Cards und zeigt deine Decks mit fälligen Karten.",
|
"Öffnet Cardecky und zeigt deine Decks mit fälligen Karten.",
|
||||||
categoryName: "Lernen"
|
categoryName: "Lernen"
|
||||||
)
|
)
|
||||||
static let openAppWhenRun: Bool = true
|
static let openAppWhenRun: Bool = true
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
"Card-Type »%@« kommt in einer späteren Phase" : {
|
"Card-Type »%@« kommt in einer späteren Phase" : {
|
||||||
|
|
||||||
},
|
},
|
||||||
"Cards" : {
|
"Cardecky" : {
|
||||||
|
|
||||||
},
|
},
|
||||||
"Changelog" : {
|
"Changelog" : {
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ gegenlesen, Tonalität an Vereins-Stil schärfen (siehe `mana/docs/BRAND.md`,
|
||||||
|
|
||||||
## Name + Subtitle
|
## Name + Subtitle
|
||||||
|
|
||||||
**App-Name:** `Cards`
|
**App-Name:** `Cardecky`
|
||||||
**Subtitle (max 30 Zeichen):** `Karteikarten — mana e.V.`
|
**Subtitle (max 30 Zeichen):** `Karteikarten — mana e.V.`
|
||||||
|
|
||||||
## Keywords (max 100 Zeichen, comma-separated)
|
## Keywords (max 100 Zeichen, comma-separated)
|
||||||
|
|
@ -21,7 +21,7 @@ Karteikarten,Spaced Repetition,Lernen,Vokabeln,Anki,Flashcards,FSRS,mana,Verein,
|
||||||
## Description — DE (max 4000 Zeichen)
|
## Description — DE (max 4000 Zeichen)
|
||||||
|
|
||||||
```
|
```
|
||||||
Cards ist die Karteikarten-App des Vereins mana e.V. — Spaced
|
Cardecky ist die Karteikarten-App des Vereins mana e.V. — Spaced
|
||||||
Repetition wie es sein soll: ohne Werbung, ohne Tracking, ohne
|
Repetition wie es sein soll: ohne Werbung, ohne Tracking, ohne
|
||||||
Abo-Zwang.
|
Abo-Zwang.
|
||||||
|
|
||||||
|
|
@ -33,13 +33,13 @@ KARTEN, WIE DU SIE BRAUCHST
|
||||||
- Audio-Karten für Sprachen und Aussprache
|
- Audio-Karten für Sprachen und Aussprache
|
||||||
|
|
||||||
MODERNER LERN-ALGORITHMUS
|
MODERNER LERN-ALGORITHMUS
|
||||||
Cards nutzt FSRS (Free Spaced Repetition Scheduler), den genauesten
|
Cardecky nutzt FSRS (Free Spaced Repetition Scheduler), den genauesten
|
||||||
offenen Algorithmus für Karteikarten. Karten kommen wieder, wenn du
|
offenen Algorithmus für Karteikarten. Karten kommen wieder, wenn du
|
||||||
sie wirklich brauchst — nicht nach willkürlichen Intervallen.
|
sie wirklich brauchst — nicht nach willkürlichen Intervallen.
|
||||||
|
|
||||||
OFFLINE LERNEN
|
OFFLINE LERNEN
|
||||||
Karten cachen lokal auf deinem Gerät. Im Flugzeug, in der U-Bahn,
|
Karten cachen lokal auf deinem Gerät. Im Flugzeug, in der U-Bahn,
|
||||||
ohne WLAN — Cards funktioniert. Deine Bewertungen werden gequeued
|
ohne WLAN — Cardecky funktioniert. Deine Bewertungen werden gequeued
|
||||||
und beim nächsten Online-Moment automatisch hochgeladen.
|
und beim nächsten Online-Moment automatisch hochgeladen.
|
||||||
|
|
||||||
WIDGETS UND NOTIFICATIONS
|
WIDGETS UND NOTIFICATIONS
|
||||||
|
|
@ -53,7 +53,7 @@ Sprachen, Wissenschaft. Abonnieren = Karten landen direkt in deiner
|
||||||
Bibliothek, du kannst sie nach Belieben anpassen.
|
Bibliothek, du kannst sie nach Belieben anpassen.
|
||||||
|
|
||||||
VEREIN, NICHT FIRMA
|
VEREIN, NICHT FIRMA
|
||||||
Cards wird vom Verein mana e.V. (Schweiz, in Gründung) betrieben.
|
Cardecky wird vom Verein mana e.V. (Schweiz, in Gründung) betrieben.
|
||||||
Kein Tracking, kein Werbe-Anbieter, kein Crash-Reporter. Wenn du dem
|
Kein Tracking, kein Werbe-Anbieter, kein Crash-Reporter. Wenn du dem
|
||||||
Verein etwas zurückgeben willst: mana-ev.ch/spende.
|
Verein etwas zurückgeben willst: mana-ev.ch/spende.
|
||||||
|
|
||||||
|
|
@ -71,7 +71,7 @@ selbst.
|
||||||
## Description — EN (max 4000 Zeichen)
|
## Description — EN (max 4000 Zeichen)
|
||||||
|
|
||||||
```
|
```
|
||||||
Cards is the flashcard app from mana e.V. — spaced repetition the
|
Cardecky is the flashcard app from mana e.V. — spaced repetition the
|
||||||
way it should be: no ads, no tracking, no subscription pressure.
|
way it should be: no ads, no tracking, no subscription pressure.
|
||||||
|
|
||||||
THE CARDS YOU NEED
|
THE CARDS YOU NEED
|
||||||
|
|
@ -80,12 +80,12 @@ THE CARDS YOU NEED
|
||||||
- Audio cards for languages and pronunciation
|
- Audio cards for languages and pronunciation
|
||||||
|
|
||||||
MODERN SPACED-REPETITION
|
MODERN SPACED-REPETITION
|
||||||
Cards uses FSRS (Free Spaced Repetition Scheduler), the most accurate
|
Cardecky uses FSRS (Free Spaced Repetition Scheduler), the most accurate
|
||||||
open algorithm available. Cards come back when you actually need them.
|
open algorithm available. Your cards come back when you actually need them.
|
||||||
|
|
||||||
OFFLINE-FIRST
|
OFFLINE-FIRST
|
||||||
Decks cache locally on your device. On a plane, in the subway, off
|
Decks cache locally on your device. On a plane, in the subway, off
|
||||||
the grid — Cards keeps working. Your reviews queue up and sync on
|
the grid — Cardecky keeps working. Your reviews queue up and sync on
|
||||||
the next online moment.
|
the next online moment.
|
||||||
|
|
||||||
WIDGETS AND REMINDERS
|
WIDGETS AND REMINDERS
|
||||||
|
|
@ -97,7 +97,7 @@ Browse public decks from the Cardecky community: geography, languages,
|
||||||
science. Subscribe = decks land in your library, ready to be edited.
|
science. Subscribe = decks land in your library, ready to be edited.
|
||||||
|
|
||||||
ASSOCIATION, NOT CORPORATION
|
ASSOCIATION, NOT CORPORATION
|
||||||
Cards is operated by mana e.V. (Switzerland, formation in progress).
|
Cardecky is operated by mana e.V. (Switzerland, formation in progress).
|
||||||
No tracking, no ad networks, no crash reporters. Want to give back?
|
No tracking, no ad networks, no crash reporters. Want to give back?
|
||||||
mana-ev.ch/donate.
|
mana-ev.ch/donate.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ AASA) und über Xcode (für Build + Sign).
|
||||||
- [ ] **App-Eintrag erstellen** unter https://appstoreconnect.apple.com
|
- [ ] **App-Eintrag erstellen** unter https://appstoreconnect.apple.com
|
||||||
mit Bundle-ID `ev.mana.cardecky`.
|
mit Bundle-ID `ev.mana.cardecky`.
|
||||||
- [ ] **App-Name** + **Subtitle** (max 30 Zeichen):
|
- [ ] **App-Name** + **Subtitle** (max 30 Zeichen):
|
||||||
- Name: "Cards"
|
- Name: "Cardecky"
|
||||||
- Subtitle: "Karteikarten — Verein mana"
|
- Subtitle: "Karteikarten — Verein mana"
|
||||||
- [ ] **Description** (de + en, max 4000 Zeichen). Vorschlag in
|
- [ ] **Description** (de + en, max 4000 Zeichen). Vorschlag in
|
||||||
[`docs/MARKETING_COPY.md`](MARKETING_COPY.md) — vor Submission
|
[`docs/MARKETING_COPY.md`](MARKETING_COPY.md) — vor Submission
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ targets:
|
||||||
path: Sources/Resources/Info.plist
|
path: Sources/Resources/Info.plist
|
||||||
properties:
|
properties:
|
||||||
CFBundleShortVersionString: "0.1.0"
|
CFBundleShortVersionString: "0.1.0"
|
||||||
CFBundleVersion: "2"
|
CFBundleVersion: "3"
|
||||||
CFBundleDevelopmentRegion: de
|
CFBundleDevelopmentRegion: de
|
||||||
CFBundleDisplayName: Cardecky
|
CFBundleDisplayName: Cardecky
|
||||||
LSApplicationCategoryType: "public.app-category.education"
|
LSApplicationCategoryType: "public.app-category.education"
|
||||||
|
|
@ -75,7 +75,7 @@ targets:
|
||||||
- cards
|
- cards
|
||||||
NSUserActivityTypes:
|
NSUserActivityTypes:
|
||||||
- NSUserActivityTypeBrowsingWeb
|
- NSUserActivityTypeBrowsingWeb
|
||||||
NSPhotoLibraryUsageDescription: "Cards greift auf deine Fotos zu, damit du Bilder zu Image-Occlusion-Karten hinzufügen kannst."
|
NSPhotoLibraryUsageDescription: "Cardecky greift auf deine Fotos zu, damit du Bilder zu Image-Occlusion-Karten hinzufügen kannst."
|
||||||
ITSAppUsesNonExemptEncryption: false
|
ITSAppUsesNonExemptEncryption: false
|
||||||
entitlements:
|
entitlements:
|
||||||
path: Sources/Resources/CardsNative.entitlements
|
path: Sources/Resources/CardsNative.entitlements
|
||||||
|
|
@ -111,7 +111,7 @@ targets:
|
||||||
properties:
|
properties:
|
||||||
CFBundleDisplayName: Als Karte speichern
|
CFBundleDisplayName: Als Karte speichern
|
||||||
CFBundleShortVersionString: "0.1.0"
|
CFBundleShortVersionString: "0.1.0"
|
||||||
CFBundleVersion: "2"
|
CFBundleVersion: "3"
|
||||||
NSExtension:
|
NSExtension:
|
||||||
NSExtensionPointIdentifier: com.apple.share-services
|
NSExtensionPointIdentifier: com.apple.share-services
|
||||||
NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).ShareViewController
|
NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).ShareViewController
|
||||||
|
|
@ -144,7 +144,7 @@ targets:
|
||||||
properties:
|
properties:
|
||||||
CFBundleDisplayName: Cardecky Widget
|
CFBundleDisplayName: Cardecky Widget
|
||||||
CFBundleShortVersionString: "0.1.0"
|
CFBundleShortVersionString: "0.1.0"
|
||||||
CFBundleVersion: "2"
|
CFBundleVersion: "3"
|
||||||
NSExtension:
|
NSExtension:
|
||||||
NSExtensionPointIdentifier: com.apple.widgetkit-extension
|
NSExtensionPointIdentifier: com.apple.widgetkit-extension
|
||||||
entitlements:
|
entitlements:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue