app-creator/domain-packs/ios-app/checklist.md
Kjell Tore Guttormsen 2011507ea1 design(app-creator): S6 — forfatt ios-app referanse-domain-pack + start claude-code-plugin-pakke
- domain-packs/ios-app/: komplett referanse-pakke (8 komponenter) — pack.json med
  components-map, conventions.md, 4 patterns/, gotchas.md, checklist.md splittet i 3
  (App Store-submission + security-privacy/MASVS 2.1 + accessibility/WCAG 2.2 AA),
  3 scaffold/-maler (PrivacyInfo.xcprivacy-plist, NSUsageDescription-inventar,
  ASC-metadata), eksempel-feature-brief i Voyage strict-mode-format, glossary.md.
  Hver teknisk påstand verifisert mot Apple Developer / W3C WAI / OWASP MAS.
- domain-packs/claude-code-plugin/: stub — pack.json + conventions.md + gotchas.md
  + checklist.md + glossary.md ferdige (ekstrahert fra ktg-privat-konvensjoner);
  patterns/scaffold/examples er stubs.
- docs/domain-pack-spec.md: § D2/D3/D4/D7 + restrisiko oppdatert — pack.json
  components-felt, core/supplementary låst til manifestet, checklist-splitt-konvensjon,
  snapshot-materialiserings-mekanikk presisert, iOS-versjons-korreksjon (iOS 26, ikke
  "iOS 18/19"), D7 → "forfattet i S6".
- prototype-run/friksjon.md: #9 (Akashic-briefen refererer "iOS 19" som ikke finnes —
  rettes i S7) + S6-prosessnotater (checklist-splitt bekreftet nødvendig, components-gap
  fylt, verifiserings-asymmetri ios-app vs claude-code-plugin notert).
- CLAUDE.md: peker til domain-packs/ under § Status.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-12 14:06:54 +02:00

58 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- domain-pack: ios-app · component: checklists · core -->
<!-- verified 2026-05-12 against Apple App Store Connect / Review Guidelines / Upcoming Requirements. -->
# iOS-app — sjekklister (index + App Store-submission)
Fase-exit-kriterier. **Dette er komponenten som bærer det fase 5 ellers ville gjenoppfunnet** (friksjon #7). En `[skip]`-merket linje må begrunnes i `00-context/pack-overrides.md`.
**Sub-sjekklister (lastes uavhengig):**
- `checklist-security-privacy.md` — OWASP MASVS 2.1 (8 kontroll-grupper) + `PrivacyInfo.xcprivacy`-mal + App Privacy Details "nutrition label".
- `checklist-accessibility.md` — WCAG 2.2 AA inkl. de 4 nye 2.2-AA-kriteriene.
---
## A. App Store Connect — metadata før innsending
- [ ] App-navn, undertittel, beskrivelse, nøkkelord, support-URL satt.
- [ ] **Skjermbilder** i påkrevd basestørrelse: 1320×2868 px (6,9″ iPhone) + 2064×2752 px (13″ iPad hvis universal). Flat PNG/JPG, RGB, **ingen alfakanal**. Apple skalerer ned for mindre enheter. ([App Store Connect — Screenshot specifications](https://developer.apple.com/help/app-store-connect/reference/app-information/screenshot-specifications/))
- [ ] **Alders-rating:** revidert spørreskjema (4+/9+/12+/13+/16+/18+) fullført. ([Apple — Age rating update](https://developer.apple.com/news/?id=ks775ehf))
- [ ] **Eksport-compliance:** krypteringsbruk besvart (`ITSAppUsesNonExemptEncryption` i Info.plist *eller* svar i App Store Connect). Standard-HTTPS via system-API regnes normalt som unntatt — men spørsmålet **må** besvares.
- [ ] **Content rights:** erklæring om appen inneholder/viser tredjeparts-innhold du har rett til.
- [ ] **App Privacy Details** ("nutrition label") utfylt og stemmer med faktisk databehandling — inkl. alle SDK-er. Se `checklist-security-privacy.md` § App Privacy Details.
- [ ] **`PrivacyInfo.xcprivacy`** i bygget, korrekt utfylt (påkrevd siden 2024-05-01). Mal: `scaffold/PrivacyInfo.xcprivacy`. Se `checklist-security-privacy.md`.
- [ ] Bygget med **påkrevd SDK** (iOS 26-SDK / Xcode 26+, krav siden 2026-04-28).
- [ ] Versjon + build-nummer økt; release-notater skrevet.
## B. Info.plist & entitlements
- [ ] **`NSUsageDescription` for hver beskyttet ressurs appen bruker** (location, kamera, mikrofon, foto, kontakter, kalender, Bluetooth, Face ID, …). Inventar-mal: `scaffold/NSUsageDescription-inventory.md`. (Notifikasjoner: ingen nøkkel — men forklar i onboarding.)
- [ ] Capabilities matcher faktisk bruk (App Groups, Push, Live Activities `NSSupportsLiveActivities`, …) — ingen ubrukte.
- [ ] `NSAppTransportSecurity`: ingen `NSAllowsArbitraryLoads` uten begrunnelse; per-domene-unntak dokumentert.
- [ ] Hvis tracking: `NSUserTrackingUsageDescription` + ATT-prompt implementert.
## C. App Store Review Guidelines — vanlige avvisnings-triggere
- [ ] **4.2 Minimum functionality** — appen gjør noe meningsfullt nativt; ikke ren web-wrapper, ikke for tynn.
- [ ] **1.2 / 2.3 Metadata** — skjermbilder viser faktisk UI; beskrivelse stemmer; ingen villedende påstander.
- [ ] **2.1 Completeness** — ingen krasj, ingen ødelagte lenker, ingen placeholder-innhold; alle URL-er i metadata fungerer.
- [ ] **5.1.1 Data collection** — purpose-strings dekker all permission-bruk; ber ikke om mer data enn nødvendig.
- [ ] **5.1.2 Data use & sharing** — tredjeparts-deling (inkl. ekstern AI) deklarert i App Privacy Details.
- [ ] **3.1.1 In-App Purchase** — digitale varer som låses opp etter installasjon går via IAP (engangs paid-up-front-app er greit).
- [ ] **4.0 Design** — ikke copycat / generisk template.
- [ ] Demo-konto / instruksjoner i "App Review Information" hvis appen krever login eller spesielt oppsett.
[Kilde: [App Store Review Guidelines](https://developer.apple.com/app-store/review/guidelines/)]
## D. Region-spesifikke krav (hvis du distribuerer der)
- [ ] **EU — DSA trader-status:** verifisert kontaktinfo i App Store Connect (DSA art. 3031). Uten det fjernes appen fra EU App Store. ([Apple — DSA requirement](https://developer.apple.com/news/upcoming-requirements/?id=02172025a))
- [ ] **Kina — ICP-filing:** ICP-filing-nummer fra MIIT i App Store Connect. Krever kinesisk juridisk enhet + Kina-hostet server.
- [ ] **Sør-Korea — GRAC:** spill må ha GRAC-rating; loot-box-sannsynlighet opplyst (Game Industry Promotion Act). Apple mapper globale ratinger automatisk.
- [ ] Andre regioner: sjekk om appens innhold/funksjon utløser lokale krav.
## E. Pre-submission røyktest
- [ ] Ren install på fysisk enhet (ikke bare simulator); permission-flows fungerer og degraderer nådig ved nektelse.
- [ ] Onboarding forklarer hver permission *før* prompten.
- [ ] Widget / Live Activity / Lock Screen-features fungerer eller er trygt fraværende.
- [ ] Dark mode, Dynamic Type (største størrelse), VoiceOver — grunnleggende gjennomgang. Detaljer: `checklist-accessibility.md`.
- [ ] `checklist-security-privacy.md` gjennomgått; `checklist-accessibility.md` gjennomgått.