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:
parent
6d9a191527
commit
6a4d66fd74
3 changed files with 19 additions and 14 deletions
|
|
@ -153,16 +153,26 @@ struct CardEditorView: View {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ViewBuilder
|
/// Extrahiert in eine eigene Property, weil PhotosPickers Label-Closure
|
||||||
private var imageOcclusionFields: some View {
|
/// unter Swift-6-Strict-Concurrency den direkten Zugriff auf
|
||||||
Section("Bild") {
|
/// `@State`-Properties als Sendable-Verletzung markiert. Indirektion
|
||||||
PhotosPicker(selection: $imagePickerItem, matching: .images) {
|
/// über eine MainActor-isolierte computed Property löst das.
|
||||||
|
private var pickerLabel: some View {
|
||||||
|
Group {
|
||||||
if occlusionImage == nil {
|
if occlusionImage == nil {
|
||||||
Label("Bild auswählen", systemImage: "photo")
|
Label("Bild auswählen", systemImage: "photo")
|
||||||
} else {
|
} else {
|
||||||
Label("Bild ersetzen", systemImage: "arrow.triangle.2.circlepath")
|
Label("Bild ersetzen", systemImage: "arrow.triangle.2.circlepath")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewBuilder
|
||||||
|
private var imageOcclusionFields: some View {
|
||||||
|
Section("Bild") {
|
||||||
|
PhotosPicker(selection: $imagePickerItem, matching: .images) {
|
||||||
|
pickerLabel
|
||||||
|
}
|
||||||
.onChange(of: imagePickerItem) { _, newItem in
|
.onChange(of: imagePickerItem) { _, newItem in
|
||||||
Task { await loadPickedImage(newItem) }
|
Task { await loadPickedImage(newItem) }
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,12 +29,6 @@
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"platform" : "ios",
|
"platform" : "ios",
|
||||||
"size" : "1024x1024"
|
"size" : "1024x1024"
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "AppIcon-1024.png",
|
|
||||||
"idiom" : "mac",
|
|
||||||
"scale" : "1x",
|
|
||||||
"size" : "1024x1024"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"info" : {
|
"info" : {
|
||||||
|
|
|
||||||
|
|
@ -97,9 +97,10 @@ AASA) und über Xcode (für Build + Sign).
|
||||||
"Karteikarten,Spaced Repetition,Lernen,Vokabeln,Anki,Flashcards,FSRS,mana,Verein,Open Source"
|
"Karteikarten,Spaced Repetition,Lernen,Vokabeln,Anki,Flashcards,FSRS,mana,Verein,Open Source"
|
||||||
- [ ] **Screenshots** für iPhone 16 Pro Max + iPhone SE-3 + iPad Pro.
|
- [ ] **Screenshots** für iPhone 16 Pro Max + iPhone SE-3 + iPad Pro.
|
||||||
6.7", 6.5", 5.5", iPad 12.9" — siehe Apple's Specs.
|
6.7", 6.5", 5.5", iPad 12.9" — siehe Apple's Specs.
|
||||||
- [ ] **Privacy-Policy-URL** — vermutlich `cardecky.mana.how/privacy`
|
- [x] **Privacy-Policy-URL**: `https://cardecky.mana.how/privacy` (live
|
||||||
oder `mana-ev.ch/privacy`. **Verifizieren.**
|
seit 2026-05-13, SvelteKit-Route mit Verein-Content).
|
||||||
- [ ] **Support-URL** — `cardecky.mana.how/help` oder Verein-Kontakt.
|
- [x] **Support-URL**: `https://cardecky.mana.how/help` (live, FAQ +
|
||||||
|
Kontakt-Email kontakt@mana-ev.ch).
|
||||||
- [ ] **Marketing-URL** (optional) — `cardecky.mana.how`.
|
- [ ] **Marketing-URL** (optional) — `cardecky.mana.how`.
|
||||||
- [ ] **Age-Rating**: vermutlich 4+ (no objectionable content).
|
- [ ] **Age-Rating**: vermutlich 4+ (no objectionable content).
|
||||||
- [ ] **Pricing**: Free.
|
- [ ] **Pricing**: Free.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue