AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Ios Privacy

skill-jakeintech-claude-ios-skills-ios-privacy · by Jakeintech

Generate privacy manifest (PrivacyInfo.xcprivacy), App Privacy nutrition labels, export compliance, age rating questionnaire, and App Review notes. Full compliance suite for App Store submission.

No reviews yet
0 installs
39 views
0.0% view→install

Install

$ agentstack add skill-jakeintech-claude-ios-skills-ios-privacy

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-jakeintech-claude-ios-skills-ios-privacy)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Ios Privacy? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Privacy & Compliance

Generate all privacy and compliance artifacts required for App Store submission.

Reference Material

Load the API reference from [reference.md](reference.md) before scanning.

1. Privacy Manifest (PrivacyInfo.xcprivacy)

Scan

Search all Swift files for required-reason API usage:

# UserDefaults
grep -r "UserDefaults\|@AppStorage\|defaults\." --include="*.swift" .

# File timestamps
grep -r "attributesOfItem\|modificationDate\|creationDate" --include="*.swift" .

# System boot time
grep -r "systemUptime\|mach_absolute_time" --include="*.swift" .

# Disk space
grep -r "attributesOfFileSystem\|systemFreeSize\|systemSize" --include="*.swift" .

Generate

Create PrivacyInfo.xcprivacy in the app target directory:


    NSPrivacyTracking
    
    NSPrivacyTrackingDomains
    
    NSPrivacyCollectedDataTypes
    
        
    
    NSPrivacyAccessedAPITypes
    
        
    

For each detected API, add the appropriate entry with reason code. See reference.md for codes.

Integrate

  1. Add PrivacyInfo.xcprivacy to the app target in project.yml
  2. Run xcodegen generate
  3. Build to verify no warnings

2. App Privacy Nutrition Labels

Scan

Search code for data collection patterns (see reference.md for mappings):

# Health data
grep -r "HKHealthStore\|HealthKit" --include="*.swift" .

# Location
grep -r "CLLocationManager\|CoreLocation" --include="*.swift" .

# Contacts
grep -r "CNContactStore\|Contacts" --include="*.swift" .

# Photos
grep -r "PHPhotoLibrary\|PhotosUI" --include="*.swift" .

# Device identifiers
grep -r "identifierForVendor\|ASIdentifierManager" --include="*.swift" .

Generate

Create appstore/privacy-labels.json:

{
  "dataTypes": [
    {
      "type": "HEALTH_AND_FITNESS",
      "purposes": ["APP_FUNCTIONALITY"],
      "linkedToIdentity": false,
      "usedForTracking": false
    }
  ]
}

Only include data types that are actually detected in the code. Do not over-declare.

Upload

Upload via asc if available:

asc apps privacy update --app-id $APP_ID --data-file appstore/privacy-labels.json

If asc can't handle privacy labels, use computer-use MCP to navigate App Store Connect > App Privacy and fill in the form fields matching the generated JSON.

3. Export Compliance

Scan

# Check for custom encryption
grep -r "CCCrypt\|SecKey\|OpenSSL\|libsodium\|CryptoKit" --include="*.swift" .

Determine

  • If ONLY standard HTTPS (URLSession, no custom crypto): set ITSAppUsesNonExemptEncryption = false in Info.plist
  • If custom encryption found: flag for user review, guide through compliance documentation

Output

Store determination in appstore/export-compliance.json:

{
  "usesNonExemptEncryption": false,
  "reason": "App uses only standard HTTPS via URLSession"
}

Verify ITSAppUsesNonExemptEncryption is set correctly in project.yml Info.plist properties.

4. Age Rating Questionnaire

Analyze

Read docs/product-vision/00-product-bounds.md for:

  • Hard boundaries (content exclusions)
  • Content description
  • Target audience

Generate

Create appstore/age-rating.json with answers to each category:

{
  "cartoonOrFantasyViolence": "NONE",
  "realisticViolence": "NONE",
  "profanityOrCrudeHumor": "INFREQUENT_OR_MILD",
  "matureOrSuggestiveThemes": "INFREQUENT_OR_MILD",
  "horrorOrFearThemes": "NONE",
  "medicalTreatmentInformation": "NONE",
  "alcoholTobaccoDrugUse": "NONE",
  "simulatedGambling": "NONE",
  "sexualContentOrNudity": "NONE",
  "unrestrictedWebAccess": "NONE",
  "gamblingWithRealCurrency": "NONE"
}

Present to user for review — age rating affects App Store placement and requires human judgment.

Upload

Upload via asc or guide through browser if API doesn't support age ratings directly.

5. App Review Preparation

Generate Review Notes

Read the app's functionality from CLAUDE.md and brand book. Write clear notes for Apple reviewers:

  • What the app does
  • How to use key features
  • Any features that require explanation

Demo Account (if login required)

If the app requires authentication:

  1. Remind user to create a demo account
  2. Store credentials in appstore/review-notes.json (add to .gitignore!)
  3. Format for App Store Connect review info
{
  "notes": "App description for reviewers...",
  "demoAccount": {
    "username": "",
    "password": ""
  },
  "attachments": []
}

Routing App Coverage File

If the app uses location-based features:

  • Explain which features are location-dependent
  • Generate or guide creation of a .geojson routing coverage file

gitignore

Ensure appstore/review-notes.json is in .gitignore (contains test credentials).

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.