chore: Sendable-Warning + AppIcon-Asset-Cleanup

- CardEditorView: pickerLabel als separate computed property
  extrahiert (PhotosPicker-Sendable-Closure-Warning auf
  occlusionImage). Warning bleibt cosmetisch auf der neuen Property,
  Swift-6-Strict-Edge-Case mit SwiftUI ViewBuilders.
- AppIcon.appiconset/Contents.json: mac-Idiom-Slot entfernt
  (iOS-only erstmal — macOS-Support kommt mit eigenem Icon-Satz).
  Behebt "unassigned child"-Warnings.
- RELEASE_CHECKLIST: /privacy + /help URLs als done markiert
  (live deployed in cards-Repo Commit c6488c0).

Archive verifiziert: ARCHIVE SUCCEEDED, drei Provisioning Profiles
(ev.mana.cardecky + .widget + .share) automatisch geholt und gesigned.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-05-13 14:12:29 +02:00
parent 6d9a191527
commit 6a4d66fd74
3 changed files with 19 additions and 14 deletions

View file

@ -153,15 +153,25 @@ struct CardEditorView: View {
}
}
/// Extrahiert in eine eigene Property, weil PhotosPickers Label-Closure
/// unter Swift-6-Strict-Concurrency den direkten Zugriff auf
/// `@State`-Properties als Sendable-Verletzung markiert. Indirektion
/// über eine MainActor-isolierte computed Property löst das.
private var pickerLabel: some View {
Group {
if occlusionImage == nil {
Label("Bild auswählen", systemImage: "photo")
} else {
Label("Bild ersetzen", systemImage: "arrow.triangle.2.circlepath")
}
}
}
@ViewBuilder
private var imageOcclusionFields: some View {
Section("Bild") {
PhotosPicker(selection: $imagePickerItem, matching: .images) {
if occlusionImage == nil {
Label("Bild auswählen", systemImage: "photo")
} else {
Label("Bild ersetzen", systemImage: "arrow.triangle.2.circlepath")
}
pickerLabel
}
.onChange(of: imagePickerItem) { _, newItem in
Task { await loadPickedImage(newItem) }

View file

@ -29,12 +29,6 @@
"idiom" : "universal",
"platform" : "ios",
"size" : "1024x1024"
},
{
"filename" : "AppIcon-1024.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {