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

4.9 KiB
Raw Permalink Blame History

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)
  • Alders-rating: revidert spørreskjema (4+/9+/12+/13+/16+/18+) fullført. (Apple — Age rating update)
  • 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 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]

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)
  • 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.