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) <noreply@anthropic.com>
26 lines
964 B
Swift
26 lines
964 B
Swift
import XCTest
|
|
|
|
final class CardsNativeUITests: XCTestCase {
|
|
func testAppLaunches() throws {
|
|
let app = XCUIApplication()
|
|
app.launch()
|
|
// 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["Cardecky"]
|
|
let decksTitle = app.staticTexts["Decks"]
|
|
let exploreTab = app.staticTexts["Entdecken"]
|
|
|
|
let deadline = Date().addingTimeInterval(5)
|
|
var found = false
|
|
while Date() < deadline {
|
|
if loginTitle.exists || decksTitle.exists || exploreTab.exists {
|
|
found = true
|
|
break
|
|
}
|
|
usleep(100_000)
|
|
}
|
|
XCTAssertTrue(found, "Erwartete App-Surface (Cardecky | Decks | Entdecken) erschien nicht innerhalb 5 s")
|
|
}
|
|
}
|