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
|
||||
private var imageOcclusionFields: some View {
|
||||
Section("Bild") {
|
||||
PhotosPicker(selection: $imagePickerItem, matching: .images) {
|
||||
/// 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) {
|
||||
pickerLabel
|
||||
}
|
||||
.onChange(of: imagePickerItem) { _, newItem in
|
||||
Task { await loadPickedImage(newItem) }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,12 +29,6 @@
|
|||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"size" : "1024x1024"
|
||||
},
|
||||
{
|
||||
"filename" : "AppIcon-1024.png",
|
||||
"idiom" : "mac",
|
||||
"scale" : "1x",
|
||||
"size" : "1024x1024"
|
||||
}
|
||||
],
|
||||
"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"
|
||||
- [ ] **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.
|
||||
- [ ] **Privacy-Policy-URL** — vermutlich `cardecky.mana.how/privacy`
|
||||
oder `mana-ev.ch/privacy`. **Verifizieren.**
|
||||
- [ ] **Support-URL** — `cardecky.mana.how/help` oder Verein-Kontakt.
|
||||
- [x] **Privacy-Policy-URL**: `https://cardecky.mana.how/privacy` (live
|
||||
seit 2026-05-13, SvelteKit-Route mit Verein-Content).
|
||||
- [x] **Support-URL**: `https://cardecky.mana.how/help` (live, FAQ +
|
||||
Kontakt-Email kontakt@mana-ev.ch).
|
||||
- [ ] **Marketing-URL** (optional) — `cardecky.mana.how`.
|
||||
- [ ] **Age-Rating**: vermutlich 4+ (no objectionable content).
|
||||
- [ ] **Pricing**: Free.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue