From 2eb7f61f9cbaae818e378a882d5af8cf0d098c60 Mon Sep 17 00:00:00 2001 From: Till JS Date: Wed, 13 May 2026 15:05:33 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20ITMS-90129=20=E2=80=94=20DisplayName=20C?= =?UTF-8?q?ards=20=E2=86=92=20Cardecky=20+=20Build=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apple lehnte Build 0.1.0(1) ab mit ITMS-90129: "The bundle uses a bundle name or display name that is already taken." Im App-Store gibt es schon Apps mit dem DisplayName "Cards" (u.a. Apples eigene Grußkarten-App war so benannt). App-Store-Connect-App heißt sowieso "Cardecky" — Brand-Konsistenz: DisplayName durchgehend "Cardecky". Geändert: - project.yml Main-App: CFBundleDisplayName Cards → Cardecky, CFBundleVersion 1 → 2 (Apple lehnt doppelte Build-Nummern ab) - project.yml Widget: CFBundleDisplayName Cards Widget → Cardecky Widget, INFOPLIST_KEY_CFBundleDisplayName analog - project.yml Share-Extension: CFBundleVersion 1 → 2 - LoginView Heading: "Cards" → "Cardecky" - NotificationManager.content.title: "Cards" → "Cardecky" - UITest: erwartet "Cardecky" statt "Cards" Archive verifiziert: CFBundleDisplayName=Cardecky, CFBundleVersion=2, ARCHIVE SUCCEEDED. Nach erneutem Upload via Xcode Organizer sollte TestFlight den Build akzeptieren. Co-Authored-By: Claude Opus 4.7 (1M context) --- Sources/Core/Notifications/NotificationManager.swift | 2 +- Sources/Features/Account/LoginView.swift | 2 +- Tests/UITests/CardsNativeUITests.swift | 6 +++--- project.yml | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Sources/Core/Notifications/NotificationManager.swift b/Sources/Core/Notifications/NotificationManager.swift index a48aec9..8aa98d4 100644 --- a/Sources/Core/Notifications/NotificationManager.swift +++ b/Sources/Core/Notifications/NotificationManager.swift @@ -67,7 +67,7 @@ final class NotificationManager { guard remindersEnabled, authorization == .authorized else { return } let content = UNMutableNotificationContent() - content.title = "Cards" + content.title = "Cardecky" content.body = "Ein paar Karten warten auf dich." content.sound = .default diff --git a/Sources/Features/Account/LoginView.swift b/Sources/Features/Account/LoginView.swift index 7823745..f9760e2 100644 --- a/Sources/Features/Account/LoginView.swift +++ b/Sources/Features/Account/LoginView.swift @@ -10,7 +10,7 @@ struct LoginView: View { ZStack { CardsTheme.background.ignoresSafeArea() VStack(spacing: 24) { - Text("Cards") + Text("Cardecky") .font(.system(size: 48, weight: .bold)) .foregroundStyle(CardsTheme.primary) Text("Karteikarten des Vereins mana e.V.") diff --git a/Tests/UITests/CardsNativeUITests.swift b/Tests/UITests/CardsNativeUITests.swift index 41b0ee2..f14e426 100644 --- a/Tests/UITests/CardsNativeUITests.swift +++ b/Tests/UITests/CardsNativeUITests.swift @@ -4,11 +4,11 @@ final class CardsNativeUITests: XCTestCase { func testAppLaunches() throws { let app = XCUIApplication() app.launch() - // App ist gestartet, sobald entweder das LoginView "Cards" + // App ist gestartet, sobald entweder das LoginView "Cardecky" // oder das DeckListView mit "Decks" sichtbar ist. Welcher // von beiden hängt davon ab, ob der Simulator-Keychain noch // eine Session hält. - let loginTitle = app.staticTexts["Cards"] + let loginTitle = app.staticTexts["Cardecky"] let decksTitle = app.staticTexts["Decks"] let exploreTab = app.staticTexts["Entdecken"] @@ -21,6 +21,6 @@ final class CardsNativeUITests: XCTestCase { } usleep(100_000) } - XCTAssertTrue(found, "Erwartete App-Surface (Cards | Decks | Entdecken) erschien nicht innerhalb 5 s") + XCTAssertTrue(found, "Erwartete App-Surface (Cardecky | Decks | Entdecken) erschien nicht innerhalb 5 s") } } diff --git a/project.yml b/project.yml index 7753598..c3d0ee6 100644 --- a/project.yml +++ b/project.yml @@ -55,9 +55,9 @@ targets: path: Sources/Resources/Info.plist properties: CFBundleShortVersionString: "0.1.0" - CFBundleVersion: "1" + CFBundleVersion: "2" CFBundleDevelopmentRegion: de - CFBundleDisplayName: Cards + CFBundleDisplayName: Cardecky LSApplicationCategoryType: "public.app-category.education" UILaunchScreen: {} UISupportedInterfaceOrientations: @@ -111,7 +111,7 @@ targets: properties: CFBundleDisplayName: Als Karte speichern CFBundleShortVersionString: "0.1.0" - CFBundleVersion: "1" + CFBundleVersion: "2" NSExtension: NSExtensionPointIdentifier: com.apple.share-services NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).ShareViewController @@ -142,9 +142,9 @@ targets: info: path: Widgets/CardsWidget/Resources/Info.plist properties: - CFBundleDisplayName: Cards Widget + CFBundleDisplayName: Cardecky Widget CFBundleShortVersionString: "0.1.0" - CFBundleVersion: "1" + CFBundleVersion: "2" NSExtension: NSExtensionPointIdentifier: com.apple.widgetkit-extension entitlements: @@ -160,7 +160,7 @@ targets: PRODUCT_BUNDLE_IDENTIFIER: ev.mana.cardecky.widget CODE_SIGN_STYLE: Automatic SKIP_INSTALL: "YES" - INFOPLIST_KEY_CFBundleDisplayName: Cards Widget + INFOPLIST_KEY_CFBundleDisplayName: Cardecky Widget CardsNativeTests: type: bundle.unit-test