App Privacy Details — „Nutrition Label" (Worksheet Cleaner)
Werte für App Store Connect → App Privacy. Apple zeigt diese Antworten auf der App-Produktseite. Müssen mit PRIVACY_POLICY.md und PrivacyInfo.xcprivacy übereinstimmen.
Frage 1: „Do you or your third-party partners collect data from this app?"
Antwort: Yes — denn unser Cloudflare-Worker erhält IP + verkleinertes Foto, und unser einziger Drittanbieter (Google, Gemini-Detection) erhält das verkleinerte Foto. Auch wenn niemand etwas speichert, gilt das nach Apples Definition als „Collected".
Begründung: Apple definiert „Collected" als „transmitted off the device in a way that allows you and/or your third-party partners to access it for a period longer than necessary to service the transmitted request in real time." Cloudflare-Logs (7 Tage) erfüllen das.
Frage 2: Data Types
Für jeden gesammelten Datentyp die folgenden Sub-Fragen beantworten:
- Used to Track you? — bei allen Datentypen No (kein Cross-App-Tracking, kein ATT).
- Linked to user? — No (kein Account, keine User-ID).
- Purpose — siehe Tabelle.
Data linked to a user identifier — keine Einträge.
Data NOT linked to the user (alles bei uns)
| Datentyp (Apple-Kategorie) | Erfasst? | Zweck | Begründung |
|---|---|---|---|
| Contact Info → Email Address | Nein | – | Wir haben keinen E-Mail-Erhebungs-Flow |
| Health & Fitness | Nein | – | – |
| Financial Info → Payment Info | Nein | – | Apple verarbeitet Zahlungen |
| Location → Precise / Coarse | Nein | – | Keine Standortabfrage |
| Sensitive Info | Nein | – | – |
| Contacts | Nein | – | – |
| User Content → Photos or Videos | Ja | App Functionality | Verkleinertes Foto geht an Google zur Handschrift-Erkennung |
| User Content → Customer Support | Ja, falls genutzt | App Functionality | E-Mail an Support, optional |
| User Content → Other User Content | Nein | – | Keine Texteingabe in dieser App |
| Browsing History | Nein | – | – |
| Search History | Nein | – | – |
| Identifiers → User ID | Nein | – | Kein Account |
| Identifiers → Device ID | Nein | – | Kein IDFA, keine Werbe-ID |
| Purchases → Purchase History | Ja | App Functionality | StoreKit-JWS wird an unseren Worker geschickt |
| Usage Data → Product Interaction | Nein | – | Keine Analytics-SDKs |
| Usage Data → Advertising Data | Nein | – | Keine Werbung |
| Usage Data → Other Usage Data | Nein | – | – |
| Diagnostics → Crash Data | Nein¹ | – | Nur on-device über Apple Console |
| Diagnostics → Performance Data | Nein¹ | – | Keine Performance-Telemetrie |
| Diagnostics → Other Diagnostic Data | Ja, optional | App Functionality | Cloudflare-Worker loggt HTTP-Status + IP für 7 Tage |
| Other Data | Nein | – | – |
¹ Falls in Zukunft TestFlight-Crash-Reports aktiviert werden, „Crash Data → App Functionality" auf Ja setzen.
Frage 3: Tracking (ATT)
Antwort: No — die App führt kein Tracking durch und zeigt keinen ATT-Prompt. Daher entfällt der ganze Tracking-Abschnitt im Privacy Label.
Übersetzte Antworten als ASCII-Tabelle
[Data Used to Track You] — None
[Data Linked to You] — None
[Data Not Linked to You]
├── Photos or Videos [App Functionality]
├── Purchases / Purchase History [App Functionality]
├── Customer Support [App Functionality]
└── Other Diagnostic Data [App Functionality]
Konsistenz-Check (vor dem Submit prüfen)
- ☐ Privacy Manifest (
PrivacyInfo.xcprivacy) listet keine getrackten Domains. - ☐ Required-Reason-APIs im Manifest sind ausgefüllt.
- ☐ Privacy Policy nennt Google und Cloudflare namentlich (OpenAI / Anthropic / OpenRouter ausdrücklich nicht — werden im Cleaner-Build nicht aufgerufen).
- ☐ Keine Analytics-SDKs eingebunden.
- ☐
NSUserTrackingUsageDescriptionist nicht im Info.plist.