0.5.0: mobile apps and games positioning (README, site, og image, skills, CLI, MCP, adapters), MCP tools for subscriptions and catalog diff, tests, changelog

This commit is contained in:
CRTkafa 2026-10-11 01:47:09 +08:00
parent 205f65828f
commit c48eead0e0
51 changed files with 960 additions and 318 deletions

View file

@ -1,6 +1,6 @@
---
name: privacy-manifest
description: Add and check Apple privacy manifests (PrivacyInfo.xcprivacy) for an iOS game - required-reason API categories (UserDefaults, file timestamps, system boot time, disk space, active keyboards) with approved reason codes, tracking flag and domains, collected data types, and third-party SDK manifests (ad networks, analytics, Firebase, Unity, Capacitor plugins). Use when App Store Connect sends ITMS-91053 "Missing API declaration" or ITMS-91061 "Missing privacy manifest", or before submitting an iOS build.
description: Add and check Apple privacy manifests (PrivacyInfo.xcprivacy) for an iOS app or game - required-reason API categories (UserDefaults, file timestamps, system boot time, disk space, active keyboards) with approved reason codes, tracking flag and domains, collected data types, and third-party SDK manifests (ad networks, analytics, Firebase, Unity, Capacitor plugins). Use when App Store Connect sends ITMS-91053 "Missing API declaration" or ITMS-91061 "Missing privacy manifest", or before submitting an iOS build.
---
# Privacy manifest (iOS)
@ -18,20 +18,20 @@ the iOS folder: add `--sdk-dirs node_modules/@capacitor,node_modules/<plugin>`.
## Steps
1. Xcode > File > New > File > App Privacy (PrivacyInfo.xcprivacy), target = the app.
2. Run the scan. For each used category add `NSPrivacyAccessedAPITypes` > item with `NSPrivacyAccessedAPIType` and
`NSPrivacyAccessedAPITypeReasons`. Typical for games:
`NSPrivacyAccessedAPITypeReasons`. Typical for apps and games:
- `NSPrivacyAccessedAPICategoryUserDefaults` + `CA92.1` (settings / saves read and written by the app itself;
Capacitor Preferences and most engines use UserDefaults)
- `NSPrivacyAccessedAPICategoryFileTimestamp` + `C617.1` (timestamps of files in the app container)
- `NSPrivacyAccessedAPICategorySystemBootTime` + `35F9.1` (elapsed time between events)
- `NSPrivacyAccessedAPICategoryDiskSpace` + `E174.1` (check space before writing)
Pick the reason that is true; read Apple's reason list ("Describing use of required reason API") if unsure.
3. Tracking: `NSPrivacyTracking` true only if the game tracks (ad SDK with IDFA after ATT); then list
3. Tracking: `NSPrivacyTracking` true only if the app tracks (ad SDK with IDFA after ATT); then list
`NSPrivacyTrackingDomains` the SDK docs name. Keep it consistent with App Privacy "used for tracking" and the ATT
prompt (`store-declarations`).
4. `NSPrivacyCollectedDataTypes`: what the app itself collects; SDK manifests cover their own collection. Xcode's
Privacy Report (Product > Archive > Generate Privacy Report) merges all manifests; compare it with App Privacy.
5. SDKs flagged "ships no PrivacyInfo.xcprivacy": update to a version that has one (ad networks and mediation
adapters added manifests in 2024 releases; see `ads-levelplay-checks` for adapter / SDK version pairs).
adapters added manifests in 2024 releases; see `ads-mediation-checks` for adapter / SDK version pairs).
6. Re-run the scan, archive, upload; Apple's email lists any remaining ITMS-910xx issue per framework.
## Gotchas