Skip to content
| Marketplace
Sign in
Visual Studio Code>Linters>Info.plist Usage Description CompanionNew to Visual Studio Code? Get it now.
Info.plist Usage Description Companion

Info.plist Usage Description Companion

Gap Hunter Labs

|
3 installs
| (0) | Free
Cross-checks Swift/Objective-C imports (CoreLocation, Contacts, Photos, etc.) against required NS*UsageDescription keys in Info.plist -- a common cause of App Store Connect rejection. No data leaves your editor.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Info.plist Usage Description Companion (VS Code)

Cross-checks Swift/Objective-C imports (CoreLocation, Contacts, Photos, camera/microphone, and more) against the required NS*UsageDescription keys in Info.plist — a common, real cause of App Store Connect rejection. No data leaves your editor.

v0.1, new niche. Not a port from the Gap Hunter Labs IntelliJ- family catalog. Evidence: only generic plist editors exist (Plist Editor, Binary Plist) — none cross source code against Apple's required usage-description keys.

What it does

Scans every .swift/.m/.mm file in the workspace for a curated set of sensitive-API signals (location, contacts, photo library, calendars/reminders, HealthKit, Bluetooth, speech recognition, Face ID, Apple Music, motion, camera, microphone) and checks your Info.plist for the matching NS*UsageDescription key. A used API with no corresponding key gets a warning on Info.plist. Re-scans automatically on save of any Swift/Obj-C file or Info.plist, or on demand via Info.plist Usage Description Companion: Rescan.

v0.1 scope, honestly noted: detection is import/text-based, not real symbol resolution. Camera vs. microphone both go through the same AVFoundation import, so those two use a text-proximity heuristic (AVCaptureDevice near .video or .audio) instead of the import alone — a real, documented approximation, not full call-site analysis.

Privacy

See PRIVACY.md — zero network calls, everything runs against files already in your workspace.

Development

npm install
npm run compile   # or: npm run watch
npm test

To build an installable package without publishing:

npx @vscode/vsce package

License

Apache License 2.0 — see LICENSE.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft