Die fremde Info.plist war es, nicht der Build-Ordner

Beide App-Ziele lesen denselben Ordner ein. XcodeGen nimmt nur die eigene
Info.plist aus den Quellen heraus — die des jeweils anderen Ziels bleibt drin
und landet unverarbeitet als Ressource im Bündel, mitsamt dem wörtlichen
$(PRODUCT_BUNDLE_IDENTIFIER).

Wer die Datei danach liest, liest die falsche: codesign stempelte
Identifier=$(PRODUCT_BUNDLE_IDENTIFIER) auf die App, und das iPad lehnte sie
als „not a valid bundle" ab. „Clean Build Folder" konnte daran nichts ändern —
der Rat war falsch, der Fehler kam aus project.yml.

Dazu: Bilder laden jetzt über ArtworkLoader statt AsyncImage. AsyncImage lädt
bei jedem Erscheinen neu und kennt keinen Zwischenspeicher; bei sechzig Kacheln
plus einem großen Aufmacher stauen sich die Anfragen hinter sechs Verbindungen.
Auf dem iPad fiel das nicht auf, auf dem Mac blieb der Aufmacher grau.

Und die beiden #if os(macOS) um die Breite der Seitenleiste liefen unter
Catalyst ins Leere — dort ist os(iOS) wahr.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-09-13 16:35:49 +02:00
co-authored by Claude Opus 5
parent 39d9138911
commit 7faa16be9c
4 changed files with 159 additions and 25 deletions
+2 -2
View File
@@ -248,7 +248,7 @@ struct RootView: View {
.padding(.horizontal, FlixySpacing.snug)
// Der Griff, an dem die Spalte hängt: dieser Inhalt sitzt in
// der Seitenleiste, also nimmt sie seine Breitenangabe an.
#if os(macOS)
#if os(macOS) || targetEnvironment(macCatalyst)
.navigationSplitViewColumnWidth(
min: Self.sidebarWidth.min,
ideal: Self.sidebarWidth.ideal,
@@ -286,7 +286,7 @@ struct RootView: View {
/// abgeschnitten wird; **ohne Obergrenze** ließ sie sich über das halbe
/// Fenster ziehen. Beide Zahlen sind nötig, und die obere entspricht dem,
/// was eine Seitenleiste auf dem iPad breit ist.
#if os(macOS)
#if os(macOS) || targetEnvironment(macCatalyst)
private static let sidebarWidth: (min: CGFloat, ideal: CGFloat, max: CGFloat) =
(min: 190, ideal: 230, max: 320)
#endif