Generate privacy policies, terms of service, and EULAs for Apple platform apps. Detects data collection patterns, third-party SDKs, and generates region-specific legal documents with Apple Privacy Nutrition Label mapping. Use when user needs legal documents or data collection disclosure for App Store submission.
Generate ready-to-use privacy policies, terms of service, and EULAs tailored to your app's data practices, third-party services, and target markets.
Disclaimer: This skill generates template legal documents based on common indie app scenarios. Consult a qualified lawyer for apps handling sensitive data (health, financial, children's data), apps with complex data sharing arrangements, or apps operating in highly regulated industries. These templates are a strong starting point -- not a substitute for legal counsel.
Use this skill when the user:
Before generating documents, gather context from the project.
Glob: **/privacy*.md, **/privacy*.html, **/privacy*.txt
Glob: **/terms*.md, **/terms*.html, **/terms*.txt
Glob: **/eula*.md, **/eula*.html, **/eula*.txt
Glob: **/legal/**
If existing documents found, ask user whether to replace or update them.
Grep: "Firebase" or "GoogleAnalytics" or "Crashlytics"
Grep: "Mixpanel" or "Amplitude" or "PostHog"
Grep: "AdMob" or "AppLovin" or "UnityAds"
Grep: "FacebookSDK" or "GoogleSignIn" or "SignInWithApple"
Grep: "Sentry" or "Bugsnag" or "DataDog"
Grep: "RevenueCat" or "Adapty" or "Qonversion"
Grep: "TelemetryDeck" or "Plausible" or "CountlySDK"
Note detected SDKs to auto-populate data collection sections.
Grep: "UserDefaults" -- Local preferences storage
Grep: "CoreData" or "SwiftData" or "NSPersistentContainer" -- Local database
Grep: "CloudKit" or "CKContainer" -- Cloud sync
Grep: "URLSession" or "Alamofire" -- Network calls
Grep: "HealthKit" or "HKHealthStore" -- Health data
Grep: "CLLocationManager" or "CoreLocation" -- Location data
Grep: "AVCaptureSession" or "PHPhotoLibrary" -- Camera/photos
Grep: "Contacts" or "CNContactStore" -- Contacts access
Grep: "ATTrackingManager" -- App Tracking Transparency
Grep: "ASAuthorizationAppleIDProvider" -- Sign in with Apple
Grep: "NSCameraUsageDescription" or "NSPhotoLibraryUsageDescription"
Grep: "NSLocationWhenInUseUsageDescription" or "NSLocationAlwaysUsageDescription"
Grep: "NSHealthShareUsageDescription" or "NSHealthUpdateUsageDescription"
Grep: "NSContactsUsageDescription" or "NSMicrophoneUsageDescription"
Grep: "NSUserTrackingUsageDescription"
Ask the user via AskUserQuestion:
Read templates.md for the document templates.
Based on configuration answers, include or exclude sections:
| Answer | Sections Added |
|---|---|
| No user data | Minimal privacy policy (no collection, no sharing) |
| Anonymous analytics | Analytics disclosure, third-party services list |
| Account with email | Account data, authentication, data retention |
| Personal info | Full data collection, user rights, data portability |
| Health/financial | Sensitive data handling, enhanced security, additional consent |
| Children under 13 | COPPA section, parental consent, limited data collection |
Replace template placeholders with detected or user-provided values:
[APP_NAME] -- App display name[DEVELOPER_NAME] -- Developer or company name[CONTACT_EMAIL] -- Privacy contact email[EFFECTIVE_DATE] -- Document effective date[WEBSITE_URL] -- Developer website or privacy page URLInclude sections based on target markets:
GDPR (European Union users):
CCPA (California users):
DPDP (India users):
COPPA (children under 13):
Based on detected data practices, generate a mapping for App Store Connect:
Apple Privacy Nutrition Label Mapping
=====================================
Data Types to Declare:
- [ ] Contact Info: Email Address -- Used for: App Functionality, Account
- [ ] Identifiers: User ID -- Used for: App Functionality
- [ ] Usage Data: Product Interaction -- Used for: Analytics
- [ ] Diagnostics: Crash Data -- Used for: App Functionality
- [ ] Diagnostics: Performance Data -- Used for: Analytics
Data Linked to User: [List items linked to user identity]
Data Used to Track: [List items used for cross-app tracking, if any]
Tracking: [Yes/No -- triggers ATT requirement if Yes]
Generate documents in Markdown format. Place files based on user's hosting preference:
docs/privacy-policy.md, docs/terms-of-service.md, docs/eula.mdResources/Legal/privacy-policy.md, etc.docs/ with guidance for in-app integrationWhen submitting to the App Store, Apple asks about data practices. Map generated privacy policy to these questions:
| Apple Question | Where to Find Answer |
|---|---|
| Do you or your third-party partners collect data? | "Information We Collect" section |
| Data types collected | Privacy Nutrition Label mapping (Step 4) |
| Is data linked to user identity? | "How We Use Information" section |
| Is data used for tracking? | "Third-Party Services" section |
Declare these data types based on your app's practices:
| If Your App... | Declare These Types |
|---|---|
| Has user accounts | Contact Info, Identifiers |
| Uses analytics | Usage Data (Product Interaction) |
| Has crash reporting | Diagnostics (Crash Data, Performance Data) |
| Shows ads | Identifiers (Device ID), Usage Data |
| Uses location | Location (Precise or Coarse) |
| Accesses photos | Photos or Videos |
| Accesses health data | Health & Fitness |
| Uses Sign in with Apple | Contact Info (Email), Identifiers (User ID) |
ATT is required when your app:
ATT is NOT required for:
docs/ folder in your repo/docshttps://yourusername.github.io/yourapp/privacy-policy// Option 1: WKWebView for hosted HTML
import WebKit
struct LegalDocumentView: UIViewRepresentable {
let url: URL
func makeUIView(context: Context) -> WKWebView { WKWebView() }
func updateUIView(_ webView: WKWebView, context: Context) {
webView.load(URLRequest(url: url))
}
}
// Option 2: Bundled Markdown rendered as Text
struct PrivacyPolicyView: View {
var body: some View {
ScrollView {
Text(LocalizedStringKey(privacyPolicyMarkdown))
.padding()
.textSelection(.enabled)
}
.navigationTitle("Privacy Policy")
}
}
After generation, provide:
docs/
├── privacy-policy.md # Privacy policy with region-specific sections
├── terms-of-service.md # Terms of service (if requested)
└── eula.md # End-user license agreement (if requested)
Provide a checklist the user can follow in App Store Connect.
NSUserTrackingUsageDescription to Info.plistgenerators/consent-flow -- GDPR/CCPA consent UI generationgenerators/account-deletion -- Account deletion flow (App Store requirement)generators/permission-priming -- Pre-permission UI for ATTmonetization/ -- Subscription terms and pricing disclosures